讲解一下break的理由:素数与合数的乘积可以由更小的素数与更大的合数来表示,如i=15,15*3记录之后,对于15*5=3*25,只需要以后当i=25时判断即可,避免重复判断
void getPrime()
{
for (int i = 2;i < MAXN;++i)
{
if (!vis[i])
prime[tot++] = i;
for (int j = 0;j < tot&&prime[j] * i < MAXN;++j)
{
vis[prime[j] * i] = 1;
if (i%prime[j]==0)
break;
}
}
}