백준문제풀이 9단계 약수,배수와 소수(3) 9506번 약수들의 합 (C#)
2024. 6. 21. 20:00ㆍ백준 문제풀이/9단계 약수,배수와 소수
자신을 제외한 모든 약수들의 합이 자신과 같은 수를 완전수라고 하는데
완전수인지 아닌지를 판별하는 문제이다.
숫자를 계속 입력받고
완전수이면 (6 = 1 + 2 + 3)처럼 식을
완전수가 아니라면 n is NOT perfect.를 출력하는 문제이다.
-1을 입력받으면 종료다.
using System;
using System.Collections.Generic;
class BackJoon
{
static void Main(string[] args)
{
int N;
List<int> nums = new List<int>();
while ((N = int.Parse(Console.ReadLine())) != -1)
{
nums.Clear();
int count = 0;
for (int i = 1; i < N; i++)
{
if(N%i == 0)
{
count += i;
nums.Add(i);
}
}
if (count == N)
{
Console.Write(N + " = ");
for (int i = 0; i < nums.Count; i++)
{
if(i < nums.Count-1)
Console.Write(nums[i] + " + ");
else
Console.WriteLine(nums[i]);
}
}
else
Console.WriteLine(N + " is NOT perfect.");
}
}
}
count와 List nums를 선언해주었다.
반복할때 마다 nums를 초기화 해준다.
i가 N의 약수라면 count를 증가시키고 nums에 Add해주자.
반복문이 끝나고 count가 N과 같다면 완전수 이므로
nums에 있는 원소들을 하나하나 +를 붙여서 출력해주자.
count가 N과 같지 않다면 완전수가 아니므로 N + is not perfect.를 출력해주자
List를 쓰고 for문을 두개나 써서 시간이 꽤나 소요될줄 알았는데
1등을 했다..? 운이 좋았던것같다. 다음으로 넘어가자.
'백준 문제풀이 > 9단계 약수,배수와 소수' 카테고리의 다른 글
백준문제풀이 9단계 약수,배수와 소수(6) 11653번 소인수분해 (C#) (0) | 2024.06.24 |
---|---|
백준문제풀이 9단계 약수,배수와 소수(5) 2581번 소수 (C#) (0) | 2024.06.23 |
백준문제풀이 9단계 약수,배수와 소수(4) 1978번 소수 찾기 (C#) (0) | 2024.06.22 |
백준문제풀이 9단계 약수,배수와 소수(2) 2501번 약수 구하기 (C#) (0) | 2024.06.20 |
백준문제풀이 9단계 약수,배수와 소수(1) 5086번 배수와 약수 (C#) (0) | 2024.06.19 |