JAVA #7 : 완전수 구하기, For문을 이용해서 완전수 구하기

반응형

자연수를 입력 받아서 입력받은 수 이하의 모든 자연수를 출력하시오.


완전수란 수론에서 완전수(完全數)는 자기 자신을 제외한 양의 약수를 더했을 때 자기 자신이 되는 양의 정수를 말한다.
또는 모든 양의 약수를 더했을때 자기 자신의 2배가 되는 수를 말하기도 한다.
최초 다섯 개의 완전수는 6, 28, 496, 8128, 33550336이다.

출처 - 위키백과 완전수

import java.util.Scanner;

public class blog{

	public static void main(String[] args) {
		
		Scanner sc= new Scanner(System.in);
		System.out.printf("자연수를 입력하시오 : ");
		int n= Integer.parseInt(sc.nextLine());

		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.println(i);
			}
		}
	}
}
반응형