문제: https://www.acmicpc.net/problem/9506
9506번: 약수들의 합
어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.
www.acmicpc.net
1. 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = -1;
while(true){
N = sc.nextInt();
if(N == -1) break;
List <Integer> list = new ArrayList<>();
int sum = 0;
for(int i = 1; i < N; i++) {
if(N % i == 0) {
sum += i;
list.add(i);
}
}
if(sum == N) {
System.out.print(N + " = ");
for(int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
if(i + 1 < list.size())
System.out.print(" + ");
else
System.out.println();
}
}
else
System.out.println(N + " is NOT perfect.");
}
}
}
2. 설명
List를 활용하여 약수 내용을 저장하여 완전수일 경우 출력하도록 하였다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 - 9063번: 대지 [Java] (0) | 2023.09.09 |
---|---|
백준 알고리즘 - 15894번: 수학은 체육과목 입니다 [Java] (0) | 2023.09.08 |
백준 알고리즘 - 2501번: 약수 구하기 [Java] (0) | 2023.09.06 |
백준 알고리즘 - 2903번: 중앙 이동 알고리즘 [Java] (0) | 2023.09.05 |
백준 알고리즘 - 2720번: 세탁소 사장 동혁 [Java] (0) | 2023.09.04 |