본문 바로가기

프로그래머스 코딩(자바)/Coding dojang

완전수 구하기

728x90

자기 자신을 제외한 모든 양의 약수들의 합이 자기 자신이 되는 자연수를 완전수라고 한다.

예를 들면, 6과 28은 완전수이다. 6=1+2+3

1,2,3은 각각 6의 약수

28=1+2+4+7+14 // 1,2,4,7,14는 각각 28의 약수

입력으로 자연수 N을 받고, 출력으로 N 이하의 모든 완전수를 출력하는 코드를 작성하라.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;
 
public class Exam0404_1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("자연수 입력 : ");
        int n = sc.nextInt();
        
        for(int i=1;i<=n;i++) {
            int sum=0;
            for(int j=1;j<i;j++) { // 자신을 제외한 약수의 합 구하기
                if(i%j==0) sum += j;
            }
            if(i==sum) System.out.printf("%3d", i); // 약수합과 자신이 같으면 완전수
        }
        System.out.println();
        sc.close();
    }
}
 
cs

 

728x90