백준 1929번 문제(소수 구하기) C++로 풀기

doctorsohn·2021년 1월 30일
0

백준

목록 보기
13/16

1929번 소수 구하기 링크


문제 요약

입력값 사이의 소수를 모두 출력한다.


코드

#include <iostream>

using namespace std;

const int range=1000001;

int main()
{
  int m,n;
  scanf("%d %d",&m,&n);
  int nums[range]={0,};
  for(int j=2;j<range;j++)
  {
    nums[j]=j;
  }
  for(int k=2;k<range;k++)  // 에라토스테네스의 체
  {
    if(nums[k]==0) continue;
    for(int l=2*k;l<range;l+=k)
    {
      nums[l]=0;
    }
  }
  for(int h=m;h<=n;h++) // 출력
  {
    if(nums[h]!=0)
    {
      printf("%d\n",nums[h]);
    }
  }
}

풀이

문제에서 주어진 범위가 백만 까지므로, 1에서 1,000,000까지 소수를 다 구하고 입력 범위 내의 소수를 출력한다.


주의점

없음

profile
하고싶은일하는게이머

0개의 댓글