Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 알고리즘
- 스프링부트 도커
- 이진수 변환
- 오름차순 정렬
- Lv1
- lv0
- 프로그래머스 자바
- 프로그래머스
- 큐
- 문자열
- 클라이언트
- Programmers
- COS Pro
- 삼각형의 완성조건
- 프로그래머스 문자열 정렬
- 스택
- 스프링부트 도커 배포
- Stack
- 스프링부트 도커로 배포
- java
- 백준
- 버퍼
- index of
- lv2
- 자바
- Queue
- 백준 N과 M 자바
- 프로그래머스 풀이
- SWEA
- StringTokenizer
Archives
- Today
- Total
mun dev
[백준] 9506 약수들의 합 자바 본문
문제설명
어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다.
예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다.
n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.
입력
입력은 테스트 케이스마다 한 줄 간격으로 n이 주어진다. (2 < n < 100,000)
입력의 마지막엔 -1이 주어진다.
출력
테스트케이스 마다 한줄에 하나씩 출력해야 한다.
n이 완전수라면, n을 n이 아닌 약수들의 합으로 나타내어 출력한다(예제 출력 참고).
이때, 약수들은 오름차순으로 나열해야 한다.
n이 완전수가 아니라면 n is NOT perfect. 를 출력한다.
✅ 통과한 코드
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
ArrayList <Integer> list=new ArrayList<>();
while(true){
int num=sc.nextInt();
if(num==-1){
break;
}
list.add(num);
}
int sum=0;
for(int i=0; i<list.size(); i++){
sum=0;
for(int j=1; j<list.get(i); j++){
if(list.get(i)%j==0){
sum+=j;
}
}
if(sum==list.get(i)){
System.out.print(list.get(i)+" = ");
for(int k=1; k<list.get(i); k++){
if(k==list.get(i)/2){
System.out.println(k);
}
else if(list.get(i)%k==0){
if(list.get(i)%2==0)
System.out.print(k+" + ");
}
}
}else{
System.out.println(list.get(i)+" is NOT perfect.");
}
}
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2606 바이러스 자바 (0) | 2023.04.05 |
---|---|
[백준] 1260 DFS와 BFS 자바 (0) | 2023.03.30 |
[백준] - 1978 소수 찾기 자바 (0) | 2023.03.24 |
[백준] 11724 - 연결 요소의 개수 자바 (0) | 2023.03.19 |
[백준] - 2675 문자열 반복 자바 (0) | 2023.03.15 |