| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 384 人关注过本帖
标题:帮忙看下我哪出错了,运行是对的,但提交是错的
只看楼主 加入收藏
夏851773277
Rank: 1
等 级:新手上路
帖 子:48
专家分:6
注 册:2011-4-18
结帖率:50%
收藏
 问题点数:0 回复次数:3 
帮忙看下我哪出错了,运行是对的,但提交是错的
德国数学家哥德巴赫曾猜测:任何大于6的偶数都可以分解成两个素数(素数对)的和。但有些偶数可以分解成多种素数对的和,如: 10=3+7,10=5+5,即10可以分解成两种不同的素数对,1234可以分解成25对不同的素数对。
#include <iostream>
using namespace std ;
int main()
{int n,i,j,a[10000],b[10000],c[10000],m=0;
cin>>n;                                    //输入被测数据
for (i=1;i<=n-1;i++)                       //将a数组进行从一赋值到n-1
{a[i-1]=i;
if (a[i-1]%2==0)a[i-1]=0;                 //将a数组里所有的偶数全命为0
for (j=2;j<a[i-1];j++)                   //将a数组中所有的素数全命为0
if (a[i-1]%j==0)break;
if (j<a[i-1])a[i-1]=0;}
for (i=0;i<n/2;i++)                     //将a数组前半段数赋给b数组
 b[i]=a[i];
for (i=n-2;i>=(n-2)/2;i--)              //将a数组后半段数倒过来赋给c数组
 c[n-2-i]=a[i];
for (i=0;i<=n/2;i++)                   //进行验证
 if (n==b[i]+c[i])m++;
cout <<m;}



搜索更多相关主题的帖子: 哥德巴赫 数学家 德国 
2011-04-19 15:38
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
回复 楼主 夏851773277
是否是要输出对数?
比如说 10 输出2
       1234 输出 25
若是这样的话,在 main的最后加上 returne 0;

Einmal ist keinmal
2011-04-19 17:30
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
楼主思路比较乱。
请用自然语言描述一下你的思路。
2011-04-19 17:42
夏851773277
Rank: 1
等 级:新手上路
帖 子:48
专家分:6
注 册:2011-4-18
收藏
得分:0 
回复 3楼 voidx
我做这个题的思路就是,它题目要求是求素数对,举个简单例子,就像是求10有几个素数对,首先知道:比10小的数就从1到9,首先不管是不是素数对,10可以写成(1)10=1+9;(2)10=2+8;(3)10=3+7;(4)10=4+6;(5)10=5+5;我们再来看,(2)式(5)式肯定是不成立的,因为两个加数为偶数,偶数肯定不为素数,所以可编程将其两个偶数赋值为0,以致使10不等于其两数想加,故可排除偶数情况,我们再考虑(1)式,因为1不是素数,所以可将1赋值为0,使(1)式不成立
2011-04-19 20:47
快速回复:帮忙看下我哪出错了,运行是对的,但提交是错的
数据加载中...
 
   



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

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