int prime[maxn];
int visit[maxn];
void Prime(){
mem(visit,0); //若为1,则不是素数
mem(prime, 0); //将已经搜索到的素数保存下来
int cnt = 0; //当前有多少个素数
for (int i = 2;i <= maxn; i++) {
if (!visit[i]) {
prime[cnt++] = i;
}
for (int j = 0; j < cnt && i*prime[j] <= maxn; j++) {
visit[i*prime[j]] = 1;
if (i % prime[j] == 0) {
break;
}
}
}
}


京公网安备 11010502036488号