본문 바로가기

Algorithm/Baekjoon

[백준_JAVA] 9506 약수들의 합

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		while(true) {
			int index = 0; int sum = 0;
			int num = scan.nextInt();
			int[] numArray = new int[num/2];
			
			if(num == -1) break;
			
			for(int i = 1; i <= num/2; i++) {
				if(num % i == 0) {
					numArray[index] = i;
					index++;
					sum += i;
				}
			}
			
			if(sum != num) {
				System.out.println(num+" is NOT perfect.");
				continue;
			}
			
			System.out.print(num+" = ");
			for(int i = 0; i < index; i++) {
				if(i == index-1)
					System.out.println(numArray[i]);
				else
				System.out.print(numArray[i]+" + ");
			}

		}
		scan.close();
	}
}

완전수의 경우 약수의 개수는 최대 num/2이다..

 

'Algorithm > Baekjoon' 카테고리의 다른 글