본문 바로가기
BOJ

[C++] 백준 1929번 소수 구하기 (에라토스테네스의 채)

by 야호호코코 2018. 7. 4.
반응형

 m과 n을 입력받고 m과 n 사이에 있는 소수를 출력하는 프로그램이다. 단, 에라토스테네스의 채를 이용해서 풀어야한다.


 미리 1~1000000 까지의 수 중에서 소수인 수를 걸러내고, m부터 n까지의 값 중 소수인 것을 출력한다.


 

#include <stdio.h> int main() { bool num[1000001]; int m, n;      int i, j; scanf("%d %d", &m, &n); for (i = 2; i <= 1000000; i++) {

num[i] = true;

} num[1] = false; for (i = 2; (i*i) <= 1000000; i++) {

if (num[i] == true) {

for (j = i + i; j <= 1000000; j += i) {

num[j] = false;

}

}

} for (i = m; i <= n; i++) { if (num[i]) printf("%d\n", i); } return 0; }


반응형

'BOJ' 카테고리의 다른 글

[C] 백준 2941번 크로아티아 알파벳  (0) 2018.07.05
[C] 백준 1157번 단어 공부  (0) 2018.07.03
[C] 백준 1152번 단어의 개수  (6) 2018.07.02