

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' 카테고리의 다른 글
[백준_JAVA] 9063 대지 (0) | 2024.02.01 |
---|---|
[백준_JAVA] 14215 세 막대 (0) | 2024.02.01 |
[백준_JAVA] 1193 분수찾기 (0) | 2024.01.27 |
[백준_JAVA] 2566 최댓값 (0) | 2024.01.27 |
[백준_JAVA] 10798 세로읽기 (0) | 2024.01.27 |