에라토스테네스의 체를 사용하여 구하면 쉽게 구한다.
#include <stdio.h>
using namespace std;
int m, n;
bool arr[1000001] = {
false,
};
void eratos(int len)
{
arr[1] = true;
for (int i = 2; i <= len; i++)
{
if (arr[i] == true)
continue;
for (int j = 2; i * j <= len; j++)
{
arr[i * j] = true;
}
}
}
int main(void)
{
scanf("%d %d", &m, &n);
eratos(n);
for (int i = m; i <= n; i++)
{
if (arr[i])
continue;
printf("%d\n", i);
}
return 0;
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[백준 11051] 이항 계수 2 (0) | 2020.12.23 |
---|---|
[백준 2004] 조합 0의 개수 (0) | 2020.12.23 |
[백준 17281] 야구 (0) | 2020.12.22 |
[백준 15685] 드래곤 커브 (0) | 2020.12.22 |
[백준 17142] 연구소 3 (0) | 2020.12.22 |
댓글