- toc {:toc}
๋ฌธ์
M์ด์ N์ดํ์ ์์๋ฅผ ๋ชจ๋ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ฐ์ M๊ณผ N์ด ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. (1 โค M โค N โค 1,000,000)ย M์ด์ N์ดํ์ ์์๊ฐ ํ๋ ์ด์ ์๋ ์ ๋ ฅ๋ง ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
ํ ์ค์ ํ๋์ฉ, ์ฆ๊ฐํ๋ ์์๋๋ก ์์๋ฅผ ์ถ๋ ฅํ๋ค.
์ถ์ฒ:https://www.acmicpc.net/problem/1929
์๋ผํ ์คํ ๋ค์ค์ ์ฒด
- ๋ฐฐ์ด์ ์์ฑํ๋ค. (+๋ฐฐ์ด ์ด๊ธฐํ ์ฝ๋์์๋ false๋ก ์ด๊ธฐํ)
- 0๊ณผ 1์ ์์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์ ์ธ
- 2๋ ์์์ด๊ณ ์ดํ 2์ ๋ฐฐ์๋ ์์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์ ์ธ
- ์ด์ ๊ฐ์ด ์์๋ฅผ ์ฝ์๋ก ๊ฐ์ง๊ณ ์๋ ์๋ค์ ์ ์ธ
- ์์๋ฅผ ์ ์ ํ๋ ๋ฒ์๋ N์ ์ ๊ณฑ๊ทผ์ผ๋ก ํ์
#include <iostream>
using namespace std;
int main()
{
bool arr[1000001];
int M, N;
cin >> M >> N;
arr[0] = arr[1] = true;
for (int i=2; i*i<=N; i++)
{
if (!arr[i])
{
for (int j = i * 2; j <= N; j += i)
arr[j] = true;
}
}
for (int i = M; i <= N; i++)
{
if (!arr[i])
cout << i << '\n';
}
return 0;
}