정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
1) 12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.
2) 5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.
static int solution(int n) { int answer = 0; for (int i = 1; i <= n; i++) { if (n % i == 0) { answer += i; } } return answer; }
약수의 특징 중 하나.
자연수 n의 약수는 n/2보다 클 수 없다.
이러한 특징을 이용한 코드이다.
static int solution(int n) { int answer = 0; for (int i = 1; i <= n / 2; i++) { if (n % i == 0) { answer += i; } } // 자연수 n의 약수는 자기자신도 포함하므로 반드시 더해주기 answer += n; return answer; }