출처: https://bumcrush.tistory.com/182 [맑음때때로 여름]
https://www.acmicpc.net/problem/2960
#include <iostream>
using namespace std;
bool check[123456 * 2 + 1];
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
for (int i = 2; i * i <= 123456 * 2; i++)
{
if (check[i] == false)
for (int j = i * i; j <= 123456 * 2; j += i)
{
check[j] = true;
}
}
while (1)
{
int n;
cin >> n;
int count = 0;
if (n == 0)
break;
for (int i = n + 1; i <= 2 * n; i++)
{
if (check[i] == false)
count++;
}
cout << count << "\n";
}
}
에라토스테네스의 체, 소수를 확인할 때 사용하는 알고리즘.
감사하게도
에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 수학에서 에라토스테네스의 체는 소수(素數, 발음: [소쑤])를 찾는 방법이다. 고대 그리스 수학자 에라토스테네스가 발견하였다. 알고리즘[편집] 2부터 소수를 �
ko.wikipedia.org
이곳에 들어가면 바로 오른쪽에 에라토스테네스의 체가 작동하는 과정이 보여진다.
이러한 과정을 거치면 결국 소수가 아닌 것들만 남게 된다!!
백준 2573 빙산(bfs) (0) | 2020.07.28 |
---|---|
백준 2573 빙산(dfs) (0) | 2020.07.27 |
백준 2583 영역 구하기(bfs) (0) | 2020.07.27 |
백준 1707 이분 그래프(dfs) (0) | 2020.07.26 |
백준 1389 케빈 베이컨의 6단계 법칙(Floyd Warshall) (0) | 2020.07.26 |
댓글 영역