[Silver / 1929] 소수 구하기
🔷 분류
수학, 정수론, 소수 판정, 에라토스테네스의 체
✒️ 문제 설명
M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.
⬅️ 입력
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
➡️ 출력
한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.
💻 코드 (C++)
#include <iostream>
using namespace std;
bool num[1000001];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int s, e;
cin >> s >> e;
num[0] = num[1] = true;
for (int i = 2; i * i <= e; i++) {
if (num[i]) continue;
for (int j = i * i; j <= e; j += i) {
num[j] = true;
}
}
for (int i = s; i <= e; i++) {
if (!num[i]) cout << i << "\n";
}
return 0;
}
공유하기
Twitter Facebook LinkedIn글 이동
Comments