c++问题,菜鸟级的。

来源:百度知道 编辑:UC知道 时间:2024/07/12 12:06:37
编写一个程序,在主函数中输入一个偶数,调用一个函数将该偶数写成两个素数之和,在主程序中输出结果。

#include<iostream>
using namespace std;

int jud(int);
int main()
{
cout<<"输入所求偶数:";
int n;
do
{
cin>>n;
if(n%2!=0)
cout<<"输入数应为偶数:";
else break;
}while(1);

for(int i=1;i<n;i++)
{
if(jud(i)&&jud(n-i))
if(i<=n-i)
cout<<i<<' '<<n-i<<endl;
}

return 0;
}

int jud(int x)
{
for(int i=2;i<x;i++)
if(x%i==0) return 0;
return 1;
}

1
判断是否输入偶数
2
遍历从1到n/2,若i为素数,判断n-i为素数,输出,否则i++
3
i>=(n/2)停止。
算法复杂度n方

哥德巴赫猜想:任何一个合数都能写成两个素数的和,有点像哦!

给我点时间考虑下啊