본문 바로가기
Language/C#

c# 입력받은 수가 완전수인지 확인하는 코드 (static 함수)

by ninanio3 2011. 12. 6.

사용자로부터 입력받은 코드가 완전수인지 아닌지 확인하는 코드다. 스태틱함수를 사용하는데, 스태틱은 프로그램이 실행될 때 우선적으로 메모리에 띄워지는 특징을 가지고 있다. 소스를 보자면...

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. /*
  7.  * 문제 내용 : 완전수를 구하는 스태틱 메서드를 선언하고 호출하자.
  8.  * 학습 내용 : 스태틱 메서드 선언법과 호출법을 익힌다.
  9.  * 힌트 내용 : 'static' 키워드가 붙은 메서드이다.
  10.  * */
  11.  
  12.  
  13. namespace Console_Test
  14. {
  15.     public class Program
  16.     {
  17.         static void Main(string[] args)
  18.         {
  19.             //완전수는 자신을 제외한 약수의 총합이 자신이 되는 수이다.
  20.             //수 입력을 받는다.
  21.             Console.WriteLine("완전수를 판별합니다. 정수를 입력하세요");
  22.             int iNum = int.Parse(Console.ReadLine());          
  23.             //자신을 제외한 약수를 더한다.
  24.             SumDivision(iNum);
  25.             PrintDivision(iNum);
  26.             //입력받은 수와 약수의 합을 비교한다.
  27.             isPerfect(iNum);
  28.             //맞으면 출력.
  29.         }
  30.         public static int SumDivision(int n)
  31.         {
  32.             int total = 1;
  33.             for (int i = 2; i < n; i++)
  34.             {
  35.                 if (n % i == 0)
  36.                 {
  37.                     total = total + i;
  38.                 }
  39.             }
  40.             return total;
  41.         }
  42.         public static void PrintDivision(int n)
  43.         {
  44.             Console.WriteLine("해당 수의 약수를 구합니다.");
  45.             Console.Write("[1 ,");
  46.             for (int i = 2; i < n; i++)
  47.             {
  48.                 if (n % i == 0)
  49.                 {
  50.                     Console.Write("{0} ,", i);
  51.                 }
  52.             }
  53.             Console.WriteLine("{0}]", n);
  54.         }
  55.         public static void isPerfect(int n)
  56.         {
  57.             if (SumDivision(n) == n)
  58.             {
  59.                 Console.WriteLine("입력하신 수는 완전수입니다.");
  60.             }
  61.             else
  62.             {
  63.                 Console.WriteLine("입력하신 수는 완전수가 아닙니다.");
  64.             }
  65.         }
  66.     }
  67. }




이 문제의 출처는 c#프로그래밍 기본기 익히기, 정보문화사, 25000, 조효은지음, 2010년 10월 4일 2쇄발행, ISBN 978-89-5674-452-0 이고, 풀이는 제가 직접 썼습니다. 저작권 침해가 됐다면 내리겠습니다.