| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 540 人关注过本帖
标题:下面这个问题,我写的代码错在哪里?
只看楼主 加入收藏
Liu3420175
Rank: 2
来 自:湖北黄冈
等 级:论坛游民
帖 子:26
专家分:17
注 册:2013-3-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
下面这个问题,我写的代码错在哪里?
写一个函数验证哥德巴赫猜想:一个不小于6的偶数可以表示成两个素数之和,如6=3+3,8=3+5,10=3+7……在主函数中输入一个不小于6的偶数n然后调用函数gotbaha,在gotbaha函数中在调用prime函数,prime函数作用是判断一个数是否是素数,在gotbaha函数中一下形式的结果:
34=3+31


下面是我写的,但是运行成功后,我输入数据就出错了,问题错在哪里?求高人指点
#include<iostream>
#include<cmath>
using namespace std;
int prime(int x)
{
    int i,m,temp;
    m=(int)sqrt((double)x);
    for(i=2;i<m+1;i++)
        if(x%i==0)  temp=1;
        else temp=0;
        return temp;
}
void gotbaha(int n)
{
    int i,j,a,b;
    for(i=3;i<=n/2;i=i+2)
    {
        a=prime(i);
        j=a-i;
    b=prime(j);
 if(a==1&&b==1)
 cout <<n<<"="<<i<<"+"<<j<<endl;
    }
   }

int main()
{
    int z;
    cin >>z;
    gotbaha(z);
    return 0;
}
搜索更多相关主题的帖子: 哥德巴赫 include double 
2013-04-05 09:25
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:10 
错误描述在哪里?

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-04-05 11:37
allmy34
Rank: 2
等 级:论坛游民
帖 子:14
专家分:19
注 册:2012-12-29
收藏
得分:10 
#include<iostream>

using namespace std;
int prime(int x)
{
    int i;
    for(i=2;i<x/2;i++){
        if(x%i==0)  return 0;
    }
    return 1;
}
void gotbaha(int n)
{
    int i;
    for(i=3;i<=n/2;i+=2)
    {
      if(prime(i)){
        if(prime(n-i))
          cout <<n<<"="<<i<<"+"<<n-i<<endl;
      }
    }
}

int main()
{
    int z;
    cin >>z;
    gotbaha(z);
    return 0;
}
2013-04-05 14:07
快速回复:下面这个问题,我写的代码错在哪里?
数据加载中...
 
   



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

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