int pr[N], cnt; // pr[]存储所有素数以及统计变量cnt
boolean st[N]; // st[x]存储x是否被筛掉
int get_pr(int n)
{
for (int i = 2; i <= n; i ++ )
{
if (!st[i]) pr[cnt ++ ] = i;//把i装到质数数组里面
for (int j = 0; pr[j] <= n / i; j ++ )//遍历这个质数数组
{//反正里面就是一个*筛合数一个%break
st[pr[j] * i] = true;//用最小质因子筛去后面的合数
if (i % pr[j] == 0) break;//i是质数的倍数直接寄,我们只用最小质因子筛
}
}
return cnt;
}