728x90
문제 설명 :
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 사항 :
- n은 0 이상 3000 이하인 정수입니다.
입출력 예 :
n return
12 | 28 |
5 | 6 |
입출력 예 설명 :
입출력 예 #1
12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.
입출력 예 #2
5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.
class Solution {
public int solution(int n) {
int answer = 0;
int i = 1;
while(i<=n){
if(n%i == 0){
answer += i;
}
i++;
}
return answer;
}
}
알고리즘 풀이 :
1. int로 반환하기 위해 객체 answer을 int로 선언
2. i를 1로 초기값을 설정
3. while 문을 사용하여 i가 n보다 커지기 전까지만 반복문을 돌림
4. i를 1씩 증가 시키며 숫자 n을 i로 나누어서 0으로 떨어지는지 확인
5. 나머지가 0으로 떨어지면 숫자 i는 n의 약수이기에 answer에 약수의 합을 저장
6. return을 사용해서 answer을 반환
728x90
'프로그래머스 > level1' 카테고리의 다른 글
[Java][프로그래머스] 가운데 글자 가져오기 (0) | 2020.09.01 |
---|---|
[Java][프로그래머스] 2016년 (0) | 2020.09.01 |
[Java][프로그래머스] 서울에서 김서방 찾기 (0) | 2020.08.07 |
[Java][프로그래머스] 짝수와 홀수 (0) | 2020.08.07 |
[Java][프로그래머스] 두 정수 사이의 합 (0) | 2020.08.07 |