您的位置:首页 > 编程语言 > Go语言

LightOJ 1259 Goldbach`s Conjecture

2015-10-01 15:21 585 查看

题意:

求1e7内的哥德巴赫猜想,找出某个数可以由几对素数相加得。

思路:

直接素数打表暴力枚举即可。

代码:

#define N 11234567

int n,m,sum;
bool mark
;
int pri[N/10],cnt;
void SP()
{
cnt=0;
memset(mark,true,sizeof(mark));
mark[0]=mark[1]=false;
for(int i=2;i<N;i++)
{
if(mark[i])
pri[cnt++]=i;
for (int j=0;(j<cnt)&&(i*pri[j]<N);j++)
{
mark[i*pri[j]]=false;
if (i%pri[j]==0)
break;
}
}
}

int main()
{
int i,j,k,kk,t,x,y,z;
SP();
scanf("%d",&k);
kk=0;
while(k--)
{
scanf("%d",&n);
for(sum=0,i=0;i<cnt&&pri[i]*2<=n;i++)
if(mark[n-pri[i]])
sum++;
printf("Case %d: %d\n",++kk,sum);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: