关于网友提出的“ 用函数调用求哥德巴赫猜想”问题疑问,本网通过在网上对“ 用函数调用求哥德巴赫猜想”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 用函数调用求哥德巴赫猜想描述:
一个不小于6的偶数可以表示为2个素数之和,如6=3+3,8=3+5,10=3+7。。。。
要求:1:在主函数中输入一个不小于6的偶数。
2:然后调用gotbaha函数
3:在gotbaha函数中调用prime函数
4: prime函数是用来判别一个数是否为素数。
5:godbah函数中输入以下形式结果:34:3+31
请各位高手大大们把题目看清楚。。我写了一些。还有一些不知道写帮帮改正和补其。。谢谢了
#include
#include
using namespace std;
int main()
{
int gotbaha(int);
int a;
cout<<"请输入你要判别是数字:"<<>
cin>>a;
while(a<6&&(double (a)/2!=0))
{
cout<<"重新输入";
cin>>a;} /*我这里有问题帮我看看,怎么如果输入0的话就不能显示重新输入.*/
gotbaha(a);
system("pause");
return 0;
}
int gotbaha(int x)
{
int prime(int);
int i;
for(i=3;i<=x;i+=2) /*将偶数i分解为两个整数*/
{ if (prime(i)==1); /*分别判断两个整数是否均为素数*/
if(prime(x-i)==1);
}
}
int prime(int x) /*判断是不是素数*/
{
int i;
int n=sqrt(x);
for (i=2;i<=n; i++)
{ if(x%i==0){break;} }
if(i>n)
{ return 1; }
else
{
return 0;
}
}
解决方案1:
while(a<6||(double(a)%2!=0))解决方案2:
while(a<6&&(double(a)/2!=0))
while(a<6&&(double(a)%2!=0))
郁闷
lz可以了 解决方案3:
#include解决方案4:
#include
using namespace std;
int main()
{
int gotbaha(int);
int a;
cout<<"请输入你要判别是数字:"<<>
cin>>a;
while(a<6 || (double (a)/2!=0)) // && -> ||
{
cout<<"重新输入";
cin>>a;} /*我这里有问题帮我看看,怎么如果输入0的话就不能显示重新输入.*/
gotbaha(a);
system("pause");
return 0;
}
int gotbaha(int x)
{
int prime(int);
int i;
for(i=3;i<= x/2;i+=2) /*将偶数i分解为两个整数*/
{
if (prime(i)==1 && prime(x - i) == 1) /*分别判断两个整数是否均为素数*/
{
cout<<><>
return 1; //add
}
}
return 0;
}
int prime(int x) /*判断是不是素数*/
{
int i;
int n=sqrt(x);
for (i=2;i<=n; i++)
{ if(x%i==0){break;} }
if(i>n)
{ return 1; }
else
{
return 0;
}
}
(double (a)/2!=0)这里是要判断是不是偶数?
a % 2 != 0