본문 바로가기

에라토스테네스의 체2

[BOJ] 백준 1929번: 소수 구하기, 에라토스테네스의 체 어떤 수 X가 소수인지 판별하는 것은 O(lgX) 복잡도로 판별 가능합니다. 2~x^1/2 범위 내에서 하나라도 나누어 떨어지는 수가 있다면 그 수는 소수가 아니게 되죠. 범위 a~b 사이의 모든 수를 위의 아이디어로 판별한다고 해도 무리는 없습니다. 다만 우리는 좀 더 효율적으로 소수를 찾고 이를 활용할 수 있습니다. 특정 범위에 존재하는 수들 중 소수를 찾는 문제는 에라토스네테스의 체를 이용합니다. www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 1929번: 소수 구하기 문제는 N이 1.. 2020. 9. 7.
[BOJ] 백준 1016번: 제곱ㄴㄴ수 제곱으로 나누어떨어지지 않는 수를 찾기 위하여 1부터 _max의 제곱근 까지의 소수를 찾아 리스트에 저장한 후 _min과 _max의 범위가 최대 100만 차이임을 이용하여 찾은 소수 제곱에 대한 배수를 채로 걸러 전체 수에서 뺌 #include #include #include #include #include #include using namespace std; typedef pair pii; typedef long long ll; ll _min, _max; bool s[1000001] = { 0, }; bool ans[1000001] = { 0 , }; vector v; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL), cout.tie(NULL.. 2020. 6. 19.