永发信息网

c++ 的几个问题

答案:3  悬赏:50  手机版
解决时间 2021-05-07 08:33
  • 提问者网友:疯孩纸
  • 2021-05-07 03:15

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
void gotbaha(int);
int n;
cout<<"请输入一个大于6的偶数吧"<<endl;
gotbaha(n);
return 0;
}
void godbaha(int n)
{int prime(int);
int a,b;
for(a=3;a<=n/2;a=a+2)
{if(prime(a))
{b=n-a;
if (prime(b))
cout<<n<<"="<<a<<"+"<<b<<endl;}
}
}
int prime(int m)
{int i,k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0) break;
if (i>k) return 1;
else return 0;
}

我想做哥德巴赫猜想,怎么这个程序老是错?

最佳答案
  • 五星知识达人网友:空山清雨
  • 2021-05-07 03:58
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
void gotbaha(int);
int n;
cout<<"请输入一个大于6的偶数吧"<<endl;
cin>>n;//原来没有输入语句
gotbaha(n);
return 0;
}
void gotbaha(int n)//函数名不一样
{int prime(int);
int a,b;
for(a=3;a<=n/2;a=a+2)
{if(prime(a))
{b=n-a;
if (prime(b))
cout<<n<<"="<<a<<"+"<<b<<endl;}
}
}
int prime(int m)
{int i,k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0) break;
if (i>k) return 1;
else return 0;
}
全部回答
  • 1楼网友:孤独的牧羊人
  • 2021-05-07 05:39

问题很多,我改了,你对比一下:

#include <iostream> #include <cmath> using namespace std; int main() { void gotbaha(int); int n; cout<<"请输入一个大于6的偶数吧"<<endl; cin>>n; gotbaha(n); return 0; } void gotbaha(int n) {int prime(int); int a,b; for(a=3;a<n;a=a+2) {if(prime(a)) {b=n-a; if (prime(b)&&b%2==1) cout<<n<<"="<<a<<"+"<<b<<endl;} } } int prime(int m) {int i; for(i=2;i<=sqrt(m);i++) if(m%i==0) return 0; return 1; }

结果是 每个不小于6的偶数都可以表示为两个奇素数之和 的所有情况:

  • 2楼网友:詩光轨車
  • 2021-05-07 05:07
#include <iostream> #include <cmath> using namespace std; int main() { void godbaha(int); //你的子函数声明时函数名写错了gotbaha,和下面声明的不一致。 int n; cout<<"请输入一个大于6的偶数吧"<<endl; gotbaha(n); return 0; } void godbaha(int n) {int prime(int); int a,b; for(a=3;a<=n/2;a=a+2) {if(prime(a)) {b=n-a; if (prime(b)) cout<<n<<"="<<a<<"+"<<b<<endl;} } } int prime(int m) {int i,k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if (i>k) return 1; else return 0; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯