鏁寸悊浜嗕竴涓?綆楁硶濡備笅 鎵撳嵃max浠ヤ笅num涓礌鏁幫細
http://lmlf001.blog.sohu.com/
void print_prime(int max,int num)
{
if(max<5)return;
unsigned long t,m,n,p;
unsigned long x;
int i,j,a,b,k;
x=max;
int z=0;
x=x/6; //x>=5
for(t=x;t>=0,z<num;t--)
{
i=1;j=1; k=t%10;
m=6*t;
/**i,j鐨勫?nbsp;鏄槸鍚﹁繘琛岄獙璇佺殑鏍囧織涔熸槸瀵瑰簲鐨?t-1鍜?t+1鐨勭礌鎬ф爣蹇?*/
if(((k-4)==0)||((k-9)==0)||((m+1)%3==0))j=0;
/*姝ゅ鏄畝鍗曢獙璇?*t-1,6*t+1 鏄笉鏄礌鏁幫紝鍊熶互鎻愰珮绱犳暟綰害**/
if(((k-6)==0)||((m-1)%3==0))i=0;
/***鍏堥氳繃鍒濇鍒ゆ柇鍘婚櫎鏈熬鏄?錛屽強琚?鏁撮櫎鐨勬暟***/
for(p=1;p*6<=sqrt(m+1)+2;p++ )
{
n=p*6;
/**灝?*p-1鍜?*p+1鐪嬩綔浼礌鏁版潵璇曢櫎*****/
k=p%10;
a=1;b=1;
/**鍚屾牱姝ゅa,b鐨勫間篃鏄敤鏉ュ垽鏂櫎鏁版槸鍚︿負绱犳暟鎻愰珮闄ゆ暟鐨勭礌鏁扮函搴?*/
if(((k-4)==0)||((k-9)==0))a=0;
if(((k-6)==0))b=0;
if(i){
/*濡傛灉i闈為浂灝卞m-1鍗蟲墍璋?*t-1榪涜楠岃瘉錛屽綋鐒惰繕瑕佺湅闄ゆ暟n+1,n-1,绱犳х函搴?/span>*/
if(a){if((m-1)%(n+1)==0)i=0;} /***涓鏃﹁鏁撮櫎灝辮鏄庝笉鏄礌鏁版晠绱犳т負闆跺嵆灝唅 璧嬪間負闆?**/
if(b){if((m-1)%(n-1)==0)i=0;}
}
if(j){
/**濡傛灉j闈為浂灝卞m+1鍗蟲墍璋?*t+1榪涜楠岃瘉錛屽綋鐒惰繕瑕佺湅闄ゆ暟n+1,n-1,绱犳х函搴?/span>*/
if(a){if((m+1)%(n+1)==0)j=0;} /***涓鏃﹁鏁撮櫎灝辮鏄庝笉鏄礌鏁版晠绱犳т負闆跺嵆灝唈 璧嬪間負闆?**/
if(b){if((m+1)%(n-1)==0)j=0;}
}
if((i+j)==0)break;
/**濡傛灉宸茬粡鐭ラ亾6*t-1,6*t+1閮戒笉鏄礌鏁頒簡閭e氨緇撴潫璇曢櫎寰幆***/
}
if(j){cout<<m+1<<endl;z++;if(z>=num)break;}
if(i){cout<<m-1<<endl;z++;if(z>=num)break;}
}
}

]]>