题目描述
写一个函数gotbaha, 验证“每个不小于6的偶数都是两个奇素数之和”,输入一个不小于6的偶数n,找出两个素数,使它们的和为n。
输入
输入一个不小于6的偶数n
输出
找出两个为素数,使它们的和为n。
样例输入
80
样例输出
80=7+73
提示
主函数已给定如下,提交时不需要包含下述主函数
/* C代码 */
int main()
{
int n;
int gotbaha(int);
int prime(int);
scanf("%d",&n);
gotbaha(n);
return 0;
}
/* C++代码 */
int main()
{
int n;
int gotbaha(int);
int prime(int);
cin>>n;
gotbaha(n);
return 0;
}
代码如下:
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int 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;
break;
}
}
}
}
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;
}
int main()
{
int n;
int gotbaha(int);
int prime(int);
cin>>n;
gotbaha(n);
return 0;
}
突然觉得题目有些令人不舒服啊,,,一是在主函数中不给输出而函数类型是int,二是输出要求并不是把一个数的所有情况都输出来。提交到oj平台上的时候都不敢确认。