공부/C#

[C#] 완전수 구하기

김짐인 2020. 8. 25. 21:48

 

완전수(完全數)

: 자기 자신을 제외한 양의 약수를 더했을 때 자기 자신이 되는 양의 정수

ex) 6, 28, 496, 8128

 

 

namespace ConsoleApp57
{


    class Program
    {


        static void Main(string[] args)
        {
            int a = Convert.ToInt32(Console.ReadLine());
            int sum = 0;


            if (a > 1 && a < 1000) //1000 이하의 자연수 입력
            {
                for (int i = 1; i < a; i++)
                {

                    if (a % i == 0)
                    {
                        sum += i;  //약수 더하기
                    }
                }
                if (sum == a)  //약수들을 더한 수(sum)가 자기자신(a)일 경우
                {
                    Console.WriteLine("YES");
                }
                else
                {
                    Console.WriteLine("NO");

                }

            }
            else
                Console.WriteLine("1000이하의 자연수를 입력하세요");
        }
  

        }
    }