개발자 뺚

[BAEKJOON ONLINE JUDGE] 1929번 : 소수 구하기 본문

Solution/C

[BAEKJOON ONLINE JUDGE] 1929번 : 소수 구하기

2023. 8. 13. 05:00

시간 제한 : 2 초

 

메모리 제한 : 256 MB

 

문제

M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다.(1≤M≤N≤1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.

 

출력

한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.


#include<stdio.h>
#include<math.h>

int main()
{
   int m=0;
   int n=0;
   scanf("%d %d", &m, &n);

   if(m < 3)
   {
      printf("2\n");
      m = 3;
   }

   for (int i = m; i <= n; i++)
   {
      if ((i % 2) == 0)
         continue;

      int cnt = 0;
      for(int j = 3; ; )
      {
         if (j > sqrt(i))
            break;
         else if ((i % j) == 0) {
            cnt++;
            break;
         }

         j+=2;
      }

      if(cnt == 0)
         printf("%d\n", i);
   }

   return 0;
}