반응형
#INFO
난이도 : SILVER3
문제유형 : 소수 판별 알고리즘
출처 : https://www.acmicpc.net/problem/1929
#SOLVE
특정 다수의 소수를 판별하는 문제이기에, 에라토스테네스의 채를 이용해 문제를 풀이했다. _about EratosSieve
int sieve[1000001] = {0, };
void eratos(int n, int m){
for(int i = 2; i <= m; ++i) sieve[i] = i;
// 2의 배수를 제거한다.
for(int i = 2; i <= m; ++i){
// 이미 지워진 숫자는 continue
if(sieve[i] == 0) continue;
for(int j = i + i; j <= m; j += i){
sieve[j] = 0;
}
}
for(int i = n; i <= m; ++i){
if(sieve[i] != 0) cout << i << '\n';
}
}
#CODE
#include <iostream>
using namespace std;
int sieve[1000001] = {0, };
void eratos(int n, int m){
for(int i = 2; i <= m; ++i) sieve[i] = i;
// 2의 배수를 제거한다.
for(int i = 2; i <= m; ++i){
// 이미 지워진 숫자는 continue
if(sieve[i] == 0) continue;
for(int j = i + i; j <= m; j += i){
sieve[j] = 0;
}
}
for(int i = n; i <= m; ++i){
if(sieve[i] != 0) cout << i << '\n';
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n, m;
cin >> n >> m;
eratos(n, m);
return 0;
}
반응형
'Archive2 > ProblemSolving' 카테고리의 다른 글
[CodeForces] 977A Wrong Subtraction C++ 문제 풀이 (0) | 2022.07.26 |
---|---|
[BOJ] C++ 2751 "수 정렬하기2" 문제 풀이 _ nov (0) | 2022.07.12 |
[BOJ] C++ 1978 "소수 찾기" 문제 풀이 _ nov (0) | 2022.07.08 |
[BOJ] C++ 9184 "신나는 함수 실행" 문제 풀이 _ nov (0) | 2022.07.05 |
[BOJ] C++ 1436 "영화감독 숌" 문제 풀이 _ nov (0) | 2022.07.05 |