[프로그래머스] 약수의 합
https://school.programmers.co.kr/learn/courses/30/lessons/12928
Math.sqrt()
메소드를 사용하여 시간복잡도를 낮췄다.완전제곱일 때
와 아닐 때
를 나눠서 합을 구했다.import java.util.*;
class Solution {
public int solution(int n) {
int answer = 0;
double k = Math.sqrt(n);
for(int i=1; i<=k; i++) {
if(n % i == 0) {
if(i*i != n) {
answer += i;
answer += n/i;
}
// 완전제곱일 때
else {
answer += i;
}
}
}
return answer;
}
}