| ||||||||||
Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:我就是这么干~~~~的,为何TLE??(附代码)(大牛门指点一下)In Reply To:我就是这么干~~~~的,为何TLE??(附代码)(大牛门指点一下) Posted by:superlcc at 2009-07-24 20:35:49 将搜索素数优化一下就OK了!!!!!!(副代码) #include<stdio.h> #include<math.h> int k[1000010]={0}; int b[1000010]={0}; void creatprime() { int i,j; for(i=2;i<1000010;i++){ if(k[i]==1) continue; for(j=2;i*j<1000010;j++) k[i*j]=1; } j=0; for(i=2;i<1000010;i++) if(k[i]==0) b[j++]=i; } int prime(int k) { int i,m; m=(int)sqrt(k); for(i=2;i<m+1;i++) if(k%i==0) return 0; return 1; } void main() { int a,i,done=0; creatprime(); while(scanf("%d",&a),a!=0) { for(i=0;b[i]<a;i++) //可以试一试让余数是素数 if(prime(a-b[i])){ done=1; goto out; } out: if(done==1) printf("%d = %d + %d\n",a,b[i],a-b[i]); else printf("Goldbach's conjecture is wrong."); } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator