int cnt=0; for(long long i=2;i<MAX+10;i++) if(!vis[i]) { prime[cnt++]=i; for(long long j=i*i;j<MAX+10;j+=i) vis[j]=1; }
这地方i,j都得换成long long,神马呀!!!我终于知道了呀!!!可以生成很大的素数了呀!!!!
因式分解,我估计该一辈子记住了,故不再贴代码!
http://wenku.baidu.com/view/257e6b0c79563c1ec5da71c9.html