#include<bits/stdc++.h>
using namespace std;
const int N = 1e8+10;
const int MAXN = 1e8+10;
bool isnp[MAXN];
vector<int>prime;
void init(int n)
{
// 从 2 开始遍历到 n
for (int i = 2; i<=n; i++)
{
// 如果 isnp[i] 为 false,说明 i 是素数
if (!isnp[i])
{
prime.push_back(i);
}
// 遍历已经找到的素数
for (int p:prime)
{
// 如果 p * i 大于 n,跳出循环
if (p*i>n) break;
// 标记 p * i 为合数
isnp[p*i] = true;
// 如果 i 能被 p 整除,跳出循环
if (i%p == 0) break;//最小质因子
}
}
}
最后的素数存在vector里面
&spm=1001.2101.3001.5002&articleId=147256556&d=1&t=3&u=f1bfcd64389c47f69d9c266a453c45a9)
1937

被折叠的 条评论
为什么被折叠?



