[백준 JAVA] 9506번 풀이 - 약수들의 합
by mini_minpackage risk.demon;
import java.util.Scanner;
/**
* 약수들의 합
* 9506번
* 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같다면, 그것은 완전수라 부른다.
* n이 완전수인지 체크하는 프로그램을 작성하라.
* 1. 한 줄 간격으로 n이 주어진다.
* 입력 마지막은 -1이 주어진다.
* n이 완전수라면, n이 아닌 약수들의 합으로 나타내어 출력한다.
* (약수들은 오름차순으로 합해야한다.)
* n이 완전수가 아니라면 "n is NOT perfect." 을 출력한다.
*
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true)
{
int sum = 0;
int n = sc.nextInt();
if ( n == -1 ) break; //끝내기
//-1이 아니면 for문
for ( int i = 1; i < n; i++ )
{
if ( n % i == 0 )
{
sum += i;
}
}
if ( sum == n )
{
System.out.print(n);
for ( int i = 1; i < n; i++ )
{
if ( n % i == 0 && i == 1 )
{
System.out.print(" = " + i);
}
else if ( n % i == 0 )
{
System.out.print(" + " + i);
}
}
System.out.println();
}
else
{
System.out.println(n + " is NOT perfect.");
}
}
sc.close();
}
}
풀이
배열(?) 을 쓸 수 있나 고민을 좀 했는데, 아주 단순하게 for 문만 활용해서 풀었다. (어차피 for 문은 여러번 들어가야할 것 같아서...!)
'매일매일 알고리즘 공부' 카테고리의 다른 글
[백준 JAVA] 2581번 풀이 - 소수 (0) | 2023.07.06 |
---|---|
[백준 JAVA] 1978번 풀이 - 소수 찾기 (0) | 2023.07.05 |
[백준 JAVA] 2501번 풀이 - 약수 구하기 (0) | 2023.07.04 |
[백준 JAVA] 5086번 풀이 - 배수와 약수 (0) | 2023.07.03 |
[백준 JAVA] 1157번 풀이 - 단어 공부 (0) | 2023.07.02 |
블로그의 정보
개발자 미니민의 개발로그
mini_min