问题:编程实现从键盘输入的一个偶数写成两个素数之和。如从键盘输入32,则输出为:32=3+29、32=13+19.
请问我想用函数的调用来解决这个问题,但是为什么没有成功?
#include
using namespace std;
int fun(int x,int a)
{ int i=0;
for(x=0;xfor (i = 2; i < x; i++) //试除法,能不能被x整除,从2开始找,直到等于x
{
if (x % i == 0) //找到能被i整除的数了
{
break;
}
}
if (x == i) //找到和x相等也没有被整除的,证明是质数
{
cout<return x;//求素数
}
int main(int a)
{
int b=0;
int c=0;
cout<<"请输入一个偶数:";
cin>>a;
if((fun(b,a)+fun(c,a))==a)
cout<"="<<fun(b,a)<<"+"<<fun(c,a);
else cout<<"error"<return 0;}
会了会了,我强大智慧的舍友帮助我写出了这个代码!!!
#include <iostream>
using namespace std;
int fun(int n)
{
int i;
for(i=2;i<n;i++)
{
if(n%i==0)return 0;
return 1;
}
}
int main()
{
int b,a;
cout<<"请输入一个偶数:";
cin>>a;
for(int b=2;b<a;b++)
{
if (fun(b))
{
if (fun(a-b))
{
cout<<a<<"="<<b<<"+"<<a-b<<'\n';
}
}
}
return 0;
}
这个代码错误比较多
可以这么实现下函数
fun函数判断一个数是否是素数,如果是返回true else false,然后主循环里面这样循环下
for( i = 2; i <= a/2; i++)
if (fun(i) && fun(a-i)) {找到,打印 i和a-i;break}