728x90
반응형
https://www.acmicpc.net/problem/23335
풀이
s(n)은 n을 제외한 n의 약수들의 합입니다.
약수들의 합이 더 크면 "abundant", 같으면 "perfect", 작으면 "deficient"을 출력하면 됩니다.
※주의 : x가 1이 들어오는 경우가 있음(도움주신분 : tony9402)
소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(br.readLine());
while(n --> 0) {
int x = Integer.parseInt(st.nextToken());
int sum = 0;
if(x > 1) {
sum = 1;
}
for(int i = 2; i * i <= x; i++) {
if(x % i == 0) {
sum += i;
if(i * i != x) {
sum += x / i;
}
}
}
sb.append(sum > x ? "abundant" : sum < x ? "deficient" : "perfect").append("\n");
}
System.out.print(sb);
}
}
728x90
반응형
'백준 > 20001 - 25000' 카테고리의 다른 글
[백준] 21318번 : 피아노 체조 (0) | 2024.11.07 |
---|---|
[백준] 23292번 : 코딩 바이오리듬(JAVA) (0) | 2021.10.31 |
[백준] 23334번 : Olympic Ranking(JAVA) (0) | 2021.10.30 |
[백준] 23336번 : A Sorting Problem(JAVA) (0) | 2021.10.30 |
[백준] 23343번 : JavaScript(JAVA) (0) | 2021.10.30 |
댓글