C#/응용 정리

C# - 1000까지의 소수를 출력하고 몇 개인지 출력하기

Khadra 2024. 8. 10. 08:42

소수(prime number)

  • 1과 자기 자신 외에는 나누어지지 않는 숫자이다.(2, 3, 5, 7, . . . 등이 소수이다.)

응용 코드

소수인지를 판단하는 프로그램 만들기

  • 2에서 1000사이의 소수를 출력하고 모두 몇 개인지 출력하기
using System;
using static System.Console;//Console단어를 생략(코드길이줄어둠)
namespace ConsoleApp1
{
  class Program
  {
    static void Main(string[] args)
    {
      //소수를 찾을 때 사용하는 안쪽 루프의 index를 정의한다.
      int index;
      //소수의 개수를 저장하기 위한 변수 primes를 선언하고 0으로 초기화한다.
      int primes =   
      //바깥 루프는 i가 2~1000까지 반복한다.
      for (int i = 2; i < 1000; i++)
      {
        //안쪽 루프는 index가 2~(i-1)까지 반복하면서                 
        for (index = 2; index < i; index++)
        {
          //중간에 나누어 떨어지면
          if (i % index == 0)
          {
            //break로 안쪽루프를 벗어난다.
            //끝까지 나누어 떨어지지 않으면 루프를 벗어날 때 index의 값이 i가된다.
            break;
          }
        }

        //루프가 끝났을 때 index가 i와 같으면 루프가 끝날 때까지 
        //나누어 떨어지지 않았다는 것이므로 소수가 된다.
        //중간에 어떤 숫자로 나누어 떨어져서 break로 루프를 빠져나왔다면 
        //index와 i가 같지 않다.
        if (index == i)
        {
            //i가 소수라면 소수의 개수 primes를 하나 증가시키고 
            primes++;
            //i를 5자리로 출력과 조건연산자를 사용하여 개수가 15개마다 줄바꿈을 한다.
            Write("{0,5}{1}", i, primes % 15 == 0 ? "\n" : "");
        }
      }
      //소수가 총 몇개인지 출력한다.
      WriteLine("\n2부터 1000 사이의 소수의 개수 : {0}개", primes);
    }
  }
}

결과

  2   3   5   7  11  13  17  19  23  29  31  37  41  43  47
 53  59  61  67  71  73  79  83  89  97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173 179 181 191 193 197
199 211 223 227 229 233 239 241 251 257 263 269 271 277 281
283 293 307 311 313 317 331 337 347 349 353 359 367 373 379
383 389 397 401 409 419 421 431 433 439 443 449 457 461 463
467 479 487 491 499 503 509 521 523 541 547 557 563 569 571
577 587 593 599 601 607 613 617 619 631 641 643 647 653 659
661 673 677 683 691 701 709 719 727 733 739 743 751 757 761
769 773 787 797 809 811 821 823 827 829 839 853 857 859 863
877 881 883 887 907 911 919 929 937 941 947 953 967 971 977
983 991 997
2부터 1000 사이의 소수의 갯수 : 168개