求素数的O(N)算法
for(i=2;i<=10000;i++)
{
if(!isprime[i]) prime[cnt++]=i;
for(j=0;j<cnt;j++)
{
if(i*prime[j]>10000) break;//prime[j]大于后面的更大于了
isprime[i*prime[j]]=1;
if(i%prime[j]==0) break;//只被最小素因子整除 比如12=6*2 而不能4*3
}
}
说实话,现在我也不能说百分之百的能讲出这样的关系
也许这也是算法的奥秘之处 看别人的尼玛就是坑 自己写的就是神作!!