완전수 구하기 - 제1회 구름코드챌린지 기출 문제
문제
완전수란 자신을 제외한 모든 약수의 합이 자신과 같은 수를 말합니다.
이 문제를 통해 범위를 입력하고 해당 범위 내의 완전수들을 출력하는 프로그램을 작성할 것 입니다.
*완전수 예 : 6 // 6의 약수 1, 2, 3, 6 => 1 + 2 + 3 = 6 (완전수)
만약 입력받은 범위 내에 완전수가 존재하지 않으면 "No Answer!" 를 출력합니다.
출처 - 구름
풀이
public class Hello {
public static void main(String[] args) {
// 두 수 입력
int number1 = 1;
int number2 = 100;
// 완전수를 찾았는지 기록하는 플래그
boolean found = false;
// 주어진 범위를 순환
for (int i = number1; i <= number2; i++) {
int sum = 0;
// 범위 내 숫자 하나씩 완전수인지 검사
for (int j = 1; j < (i / 2) + 1; j++) {
if (i % j == 0) {
sum += j;
}
}
// 만약 sum 이 i 와 같다면 완전수
if (sum == i) {
System.out.println(i);
found = true; // 플래그 변경
}
}
// 찾았는지 검사
if (!found) {
System.out.println("No Answer!");
}
}
}
> java Hello
6
28