楼上的jyd能告诉我你的QQ吗?
永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
long int big(int a) { long int sn,b=0,c,i,j,m=1,n,x,k[3000]={0,2}; printf("input a number:\n"); input: scanf("%ld",&x); sn=sqrt(x); if(sn%2==0)sn+=1; for(i=3;i<=sn;i+=2) { j=prime(i); /*prime 是常规方法求素数的子涵数,把输入的x的平方根以内的素数求出来放在K数组*/ if(!j) /*如果返回值为0是素数*/ { m++;k[m]=i; } } for(i=1;i<=m;i++) { if(a=='4'&&(!(prime_super(k[i])))) /*以下几个if语句,是看主调涵数传来的什么值,选择求素数还是超级素数,或两种一起求*/ { printf("%ld\t",k[i]); b++; } if(a=='5'&&(!(prime_super(k[i])))) { printf(">"); /*如果是两个一起求,就在超级素数前标记*/ b++; } if(a=='3'||a=='5') printf("%ld\t",k[i]); } n=m; for(i=sn;i<=x;i+=2) /*用x平方根到X的所有奇数对刚才数组求的的素数取余*/ { for(j=1;j<=m;j++) if(i%k[j]==0)break; if(j>m) { if(a=='4'&&(!(prime_super(i)))) /*和上面几个if语句作用一样*/ { printf("%ld\t",i); b++; } if(a=='5'&&(!(prime_super(i)))) { printf(">"); b++; } n++; if(a=='3'||a=='5') printf("%ld\t",i); } } if(a=='4'||a=='5') printf("\n\tin %ld within super prime numbers sum is %ld ",x,b); if(a=='3'||a=='5') printf("\n\tin %ld within prime numbers sum is %ld ",x,n); printf("\nIf necessary validate,press any key.exit press\"q\"\n"); while(getch()!='q') answer('q'); }