IT 개발노트

for문 예제 (1~1000사이에 완전수 구하기) 본문

알고리즘/JAVA

for문 예제 (1~1000사이에 완전수 구하기)

limsungju 2019. 2. 8. 13:03

문제 : 1~1000사이에 있는 자연수에 대하여 자기 자신의 수를 제외한 모든 약수의 합 이 자신과 같아지는 수
        (완전수)를 구하여라. 
• 예) 6의 약수 = 1, 2, 3, 6
• 1+2+3 = 6(완전수

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package sungju.Java.Test1;
 
public class Test1 {
    public static void main(String[] args) {
        int a;
        int sum=0;
        for(int i=1; i<=1000; i++) {
            a = i;
            for(int j=1; j<=i; j++) {
                //약수를 구하기 위한 조건식
                if(a%j==0) {
                    //약수를 sum에 모두 더하기
                    sum = sum + j;
                }
            }
            //약수를 더할때 자기 자신도 더해지기 때문에 자기 자신을 빼준다
            if((sum-i)==i) {
                System.out.print(i + "\t");
            }
            sum=0;
        }
    }
}