1929번: 소수 구하기(BOJ C/C++)
사용 언어: C
문제
M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
출력
한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.
풀이
#include <stdio.h>
int main(void)
{
int m,n,arr[1000001]={0,};
arr[0]=arr[1]=1;
scanf("%d %d", &m, &n);
for(int i=2; i<=n; i++)
if(arr[i]==0) //1인 값은 건너 뜀
for(int j=2; i*j<=n; j++) //i의 배수는 전부 제외
arr[i*j]=1;
for(int i=m; i<=n; i++)
if(arr[i] == 0)
printf("%d\n",i);
return 0;
}
'BOJ' 카테고리의 다른 글
18870번: 좌표 압축 (0) | 2024.09.26 |
---|---|
10816번: 숫자 카드 2 (0) | 2022.02.04 |
2480번: 주사위 세개 (0) | 2022.01.15 |
2752번: 세수정렬 (0) | 2022.01.12 |
2443번: 별 찍기 - 6 (0) | 2022.01.12 |