@[Zzz123456789101112](/user/1292265)
我的代码,如果没记错的话应该是欧拉筛(?)
```cpp
#include <bits/stdc++.h>
using namespace std;
bool f[10000010];
int main()
{
memset(f, true, sizeof f);
f[0] = f[1] = false;
for (int i = 2; i * i <= 10000000; i++)
if (f[i])
{
for (int j = i; j <= 10000000 / i; j++)
{
f[i * j] = false;
}
}
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
int x;
cin >> x;
if (f[x]) cout << x << " ";
else continue;
}
return 0;
}
```
by wzj0829 @ 2024-03-09 18:23:55
@[Zzz123456789101112](/user/1292265) 没看懂诶,要是写质数筛的话,为什么处理每个数都要跑一遍。
说这题好像可以直接试除法诶。
by ilibilib @ 2024-03-09 18:39:21
@[ilibilib](/user/1039659) 刚看了一下几种筛法,所以想练一下,质数筛也没有所有数都跑一遍啊i * i <= 10000000,这个不算条件吗?
by Zzz123456789101112 @ 2024-03-11 19:11:12
@[wzj0829](/user/1028403) 好的好的,谢谢啦,明白了
by Zzz123456789101112 @ 2024-03-11 20:16:02