728x90
반응형
문제
정답 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(true){
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
if(n == -1) break;
sb.append(n + " = 1");
int sum = 1;
for(int i = 2; i < n; i++){
if(n%i == 0){
sb.append(" + " + i);
sum+=i;
}
}
if(n == sum){
System.out.println(sb);
}
else{
System.out.println(n + " is NOT perfect.");
}
}
br.close();
}
}
- 메모리 15064KB
- 시간 148ms
StringBuilder 말고 배열로 짜다가 마지막 약수를 출력할 때는 +를 출력하면 안되다보니 좀 복잡해지는 것 같았어요.
StringBuilder를 사용하고,
1은 무조건 약수이니까 미리 넣어주니 출력문이 쉽게 만들어졌습니다.
728x90
반응형
'Computer Science (CS) > 알고리즘' 카테고리의 다른 글
[백준/Java] 2581번 소수 (0) | 2023.05.21 |
---|---|
[백준/Java] 1978번 소수 찾기 (0) | 2023.05.21 |
[백준/Java] 2501번 약수 구하기 (0) | 2023.05.20 |
[백준/Java] 5086번 배수와 약수 (0) | 2023.05.20 |
[백준/Java] 10757번 큰 수 A+B (0) | 2023.05.20 |