본문 바로가기
Language/C#

c# break문을 이용하여 소수(Prime)를 구하자!!

by ninanio3 2011. 12. 8.

역시... 논리적인 문제를 접근하는것은 삽질이 빠질 수가 없다... ㅋㅋㅋ
여러번 돌려봐야 알게된다. 그래서 좀 걱정인것이, 나중에도 헷깔리면 안될텐데 하는 마음...
열공밖에 없다. 에효, 집중력이 좀 있어야할텐데

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. /*
  7.  * 문제 내용 : 1부터 1000 사이의 소수(prime)를 출력하라.
  8.  * 학습 내용 : break를 이용하여 순환문(반복문)을 빠져나오는 방법을 익힌다.
  9.  * 힌트 내용 : break와 가장 가까운 순환문(반복문 : for, while, do~while)을 빠져나온다.
  10.  * */
  11.  
  12.  
  13. namespace Console_Test
  14. {
  15.     public class Program
  16.     {
  17.         static void Main(string[] args)
  18.         {
  19.             //for문을 이용하여 1부터 1000까지 돌리고
  20.             //다시 for문을 이용하여 i를 j로 나눠서 남은 나머지가 0인지 확인.            
  21.             //i를 모아서 출력해준다.
  22.  
  23.             //for문을 이용하여 1부터 1000까지 돌리고
  24.             PrintPrime(1000);
  25.         }
  26.         //다시 for문을 이용하여 i를 j로 나눠서 남은 나머지가 0인지 확인.
  27.         public static bool isPrime(int n)
  28.         {
  29.             bool result = true;
  30.             for (int i = 2; i < n; i++)
  31.             {
  32.                 if (n % i == 0)
  33.                 {
  34.                     result = false;
  35.                     break;
  36.                 }
  37.             }
  38.             return result;
  39.         }
  40.         //i를 모아서 출력해준다.
  41.         public static void PrintPrime(int n)
  42.         {
  43.             int count = 0;
  44.             for (int i = 2; i <= n; i++)
  45.             {
  46.                 if (isPrime(i))
  47.                 {
  48.                     Console.Write("{0}\t", i);
  49.                     count++;
  50.                 }
  51.             }
  52.             Console.WriteLine();
  53.             Console.WriteLine("2부터 {0}까지 약수 : {1}개", n, count);
  54.         }
  55.     }
  56. }





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