https://www.acmicpc.net/problem/9506
9506번: 약수들의 합
어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.
www.acmicpc.net
해석 및 팁
꼼수이지만 쉽게 풀수 있는 방법이 있습니다. 문제에서는 완전수 일때 약수들의 합으로 출력하고 아닌경우에는 n is NOT perfect. 를 출력하라고 합니다. 이때 완전수의 100,000까지의 완전수는 6, 28, 496, 8128 만존재합니다. 따라서 4개의 수를 제외하면 n is NOT perfect.를 출력하면 됩니다.
Java 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true) {
int n = sc.nextInt();
if(n == -1) break;
else if(n == 6) System.out.println("6 = 1 + 2 + 3");
else if(n == 28) System.out.println("28 = 1 + 2 + 4 + 7 + 14");
else if(n == 496) System.out.println("496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248");
else if(n == 8128) System.out.println("8128 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 127 + 254 + 508 + 1016 + 2032 + 4064");
else System.out.println(n+" is NOT perfect.");
}
}
}
'백준' 카테고리의 다른 글
백준 1145 적어도 대부분의 배수(Java) (0) | 2023.01.17 |
---|---|
백준 11557 Yangjojang of The Year(Java) (0) | 2023.01.17 |
백준 2846 오르막길(Java) (0) | 2023.01.17 |
백준 10448 유레카 이론(Java) (0) | 2023.01.17 |
백준 2669 직사각형 네개의 합집합의 면적 구하기(Java) (0) | 2023.01.16 |