728x90
반응형
2024.05.08기준 - 브론즈 1
백준, BEAKJOON, BOJ, JAVA, 자바
풀이
완전수(perfect number)는 자신을 제외한 약수의 합이 자신과 같은 수를 말합니다.
divisor 함수는 주어진 수의 약수를 찾아내고, 약수드르이 합을 반환하도록 작성했습니다.
divisor 함수를 통해 입력받은 숫자가 완전수 인지 여부를 판단합니다.
주어진 숫자가 완전수일 경우, 해당 숫자와 약수들의 합을 출력합니다.
입력받은 숫자가 완전수인지 판별하여 결과를 출력하는 간단한 문제였습니다.
코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String str;
// -1을 입력할 때까지 반복
while (!(str = br.readLine()).equals("-1")) {
int num = Integer.parseInt(str);
List<Integer> list = new LinkedList<Integer>();
int sum = divisor(num, list);
sb.append(num);
if (sum == num) { // 주어진 숫자가 완전수인지 판별
sb.append(" = ");
// 완전수일 경우, 약수들의 합을 출력
for (int i = 0; i < list.size(); i++) {
sb.append(list.get(i));
if (i != list.size() - 1) {
sb.append(" + ");
}
}
} else { // 완전수가 아닐 경우, 해당 메시지 출력
sb.append(" is NOT perfect.");
}
sb.append("\n");
}
System.out.println(sb);
}
// 약수 구하는 함수
private static int divisor(int num, List<Integer> list) {
int result = 0;
// 주어진 숫자의 약수들을 찾아내고 합을 계산
for (int i = 1; i < num; i++) {
if (num % i == 0) {
list.add(i);
result += i;
}
}
return result;
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BAEKJOON / 백준 - JAVA 10833번 사과 (0) | 2024.05.09 |
---|---|
BAEKJOON / 백준 - JAVA 31799번 평점 변환 (0) | 2024.05.08 |
BAEKJOON / 백준 - JAVA 31796번 한빛미디어 (Easy) (0) | 2024.05.07 |
BAEKJOON / 백준 - JAVA 31797번 아~파트 아파트 (0) | 2024.05.07 |
BAEKJOON / 백준 - JAVA 15917번 노솔 방지문제야!! (0) | 2024.05.07 |