Problem Solving Log
[Baekjoon] 1929 : 소수 구하기 (C++)
TypeMIN
2022. 3. 1. 18:57
728x90
Baekjoon Online Judge 1929번 : 소수 구하기
문제
M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
출력
한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.
예제 입력
3 16
예제 출력
3
5
7
11
13
코드
#include <iostream>
using namespace std;
int main() {
int M, N;
int prime[1000000];
for(int i = 0; i < 1000000; i++){
prime[i] = 1;
}
prime[0] = 0;
for(int i = 2; i * i <= 1000000; i++){
if(prime[i - 1] == 1){
for(int k = i + i; k <= 1000000; k += i){
prime[k - 1] = 0;
}
}
}
cin >> M >> N;
for(int i = M - 1; i < N; i++){
if(prime[i] == 1){
cout << i + 1 << '\n';
}
}
}
728x90
반응형