약수의 합

문제정의


어떤 자연수 n이 주어졌을 때, 약수들의 합을 구하는 문제이다.

문제풀이


전체 코드는 다음과 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class SumDivisor {

//프로그래머스 문제풀이 level1 약수의 합
public static void main(String[] args)
{
int n = 12;
int answer = 0;
for(int i = 1; i <= n; i++)
{
if(n%i == 0)
answer += i;
}
}
}
간단한 문제이다. 1부터 n까지 가면서 만약 나누어 떨어지는 수라면 정답에 해당 약수를 더해나가면 된다. 총 시간복잡도는 \(O(n)\)이다.

테스트