| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 600 人关注过本帖
标题:寻找素数对
只看楼主 加入收藏
redunkind
Rank: 2
等 级:论坛游民
帖 子:36
专家分:14
注 册:2011-4-10
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:1 
寻找素数对
描述

哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数.
做好了这件实事,就能说明这个猜想是成立的.
由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的,而且素数对中的第一个数不大于第二个数.

输入


输入中是一些偶整数M(5<M<=10000).


输出


对于每个偶数,输出两个彼此最接近的素数,其和等于该偶数.


样例输入


20
30
40

样例输出


7 13
13 17
17 23
大虾们,这个要怎么做啊?能详细点说说吗??
搜索更多相关主题的帖子: 哥德巴赫 
2011-05-16 18:30
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:20 
程序代码:
int i,j,a[5000],n=0,m,q=0;
int x[100],y[100],s[10],p=0,min=0;
for(i=2;i<10000;i++)
{for(j=2;j<i;j++)
{if(i%j==0)
break;}
if(j>=i)
a[n++]=i;}
e:scanf("%d",&m);
if(m>5&&m<=10000&&m%2==0)
{
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
if(a[i]+a[j]==m&&i<j)
{x[p]=a[i];
y[p]=a[j];
s[p]=a[j]-a[i];
p++;}}
min=s[0];
for(int t=0;t<p;t++)
if(min>s[t])
{min=s[t];q=t;}
printf("%5d%5d",x[q],y[q]);}
else {printf("\n重新输入:");goto e;}
仅供参考!

[ 本帖最后由 hjywyj 于 2011-5-17 06:51 编辑 ]
2011-05-16 18:53
快速回复:寻找素数对
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030194 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved