| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 816 人关注过本帖
标题:关于哥德巴赫猜想的小程序,证明一个不小于6的偶数是两个奇素数之和
只看楼主 加入收藏
蓝色的blue
Rank: 1
等 级:新手上路
帖 子:35
专家分:7
注 册:2013-10-19
结帖率:54.55%
收藏
已结贴  问题点数:26 回复次数:7 
关于哥德巴赫猜想的小程序,证明一个不小于6的偶数是两个奇素数之和
我写了一个证明哥德巴赫猜想的程序,但运行之后好像有bug,问题就是好像并不是总能把所有满足的素数找出来。比如我输入1636但运行结果少了一组“17+1619=1636”,我今天调试了两个小时还是没法找到bug,请各位大牛能在百忙之中抽出一点空帮看一下。。谢谢。。代码如下:
#include<iostream>
using namespace std;
int gotbaha(int n)
{
    bool test=true;
    bool quit=true;
    for(int i=2;i<n;i++)
    {
        if(i%2!=0)
        {
            for(int j=2;j<i;j++)
            {
                if(i%j==0)
                {
                    quit=false;
                    break;
                }
            }
            if(quit)
            {
                for(int j=1;j<n;j++)
                {
                    if(j%2!=0)
                    {
                        for(int k=2;k<j;k++)
                        {
                            if(j%k==0)
                            {
                                test=false;
                                break;
                            }

                        }
                    }
                    if(i+j==n)
                        cout<<n<<"="<<i<<"+"<<j<<endl;
                }
            }
        }
    }
    return 0;
}
int main()
{



    int n;



    int gotbaha(int);



    cin>>n;



    gotbaha(n);



    return 0;



}
搜索更多相关主题的帖子: 哥德巴赫 include 
2013-11-07 22:27
anthow
Rank: 2
等 级:论坛游民
帖 子:3
专家分:17
注 册:2013-9-29
收藏
得分:6 
写一个判断是否为素数的函数不是好一点么,,,,而且最好限制一下不能输入奇数
2013-11-08 01:10
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:6 
程序代码:
#include<iostream>
using namespace std;

int gotbaha(int n)
{
    bool test=true;
    bool quit=true;
    for(int i=2;i<n;i++)
    {
        if(i%2!=0)
        {
            for(int j=2;j<i;j++)
            {
                if(i%j==0)
                {
                    quit=false;
                    break;
                }
            }
            if(quit)
            {
                for(int j=1;j<n;j++)
                {
                    if(j%2!=0)
                    {
                        for(int k=2;k<j;k++)
                        {
                            if(j%k==0)
                            {
                                test=false;
                                break;
                            }
                        }
                    }
                    if(i+j==n)
                        cout<<n<<"="<<i<<"+"<<j<<endl;
                }
            }
            quit=true;//这两个变量被修改后没还原
            test=true;//
        }
    }
    return 0;
}
int main()
{
    int n;
    int gotbaha(int);
   
    cin>>n;
    gotbaha(n);
    system("pause");
    return 0;
}
2013-11-08 08:47
编程学霸
Rank: 1
等 级:新手上路
帖 子:1
专家分:6
注 册:2013-11-6
收藏
得分:6 
好厉害的样子
2013-11-08 15:41
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:6 
以下是引用编程学霸在2013-11-8 15:41:38的发言:

好厉害的样子

居然是个女性头像...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-11-08 16:22
蓝色的blue
Rank: 1
等 级:新手上路
帖 子:35
专家分:7
注 册:2013-10-19
收藏
得分:0 
回复 3楼 heroinearth
谢谢。。。

低调的卓越.........
2013-11-08 19:11
蓝色的blue
Rank: 1
等 级:新手上路
帖 子:35
专家分:7
注 册:2013-10-19
收藏
得分:0 
回复 3楼 heroinearth
我的声明的test布尔变量好像没有用处?但我一旦把if(i+j==n);语句改为if(test&&i+j==n);输出结果好像又不行了。请问大牛为什么呢?怎么办?

低调的卓越.........
2013-11-08 19:17
sh316630103
Rank: 2
等 级:论坛游民
帖 子:10
专家分:23
注 册:2013-11-9
收藏
得分:6 
2013-11-09 20:50
快速回复:关于哥德巴赫猜想的小程序,证明一个不小于6的偶数是两个奇素数之和
数据加载中...
 
   



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

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