| ||||||||||
| 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