| ||||||||||
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 |
筛法也超时??只有6个0啊~~哪位高手帮忙看看啊~~#include<stdio.h> #include<string.h> #define max 1000000 int sieve[max+1]; int pr[max+1]; int count; #define del 1 #define kep 0 void in(int n) { int i,k,c=1; int prime=2; pr[0]=2; count=0; for(i=0;i<=n;i++) sieve[i]=kep; for(i=0;i<=n&&prime<=n;i++) { if(sieve[i]==kep) { prime=i+i+3; pr[c++]=prime; count++; for(k=prime+i;k<=n;k+=prime) sieve[k]=del; } } } void main() { int n,i,a,b,j,flag; while(scanf("%d",&n),n) { memset(pr,0,sizeof(pr)); flag=0; in(n); for(i=0;i<count;i++) { for(j=count-1;j>=0;j--) { if(n==(pr[i]+pr[j])) { a=pr[i]; b=pr[j]; flag=1; break; } } if(flag) break; } if(flag) printf("%d = %d + %d\n",n,a,b); else printf("Goldbach's conjecture is wrong.\n"); } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator