for (int i = 2; i * i <= r; i++)
{
if (!vis[i])
prime[++prime[0]] = i;
for (int j = 1; j <= prime[0] && i * i * prime[j] * prime[j] <= r; j++)
{
vis[i * prime[j]] = true;
if (i % prime[j] == 0)
break;
}
}
我想筛出 [1,r] 之间的质数 (r<231),prime 和 vis 都开到了 106,但是 RE,请问问题出在哪?