问题及代码:
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:num.cpp
*作 者:单昕昕
*完成日期:2014年12月12日
*版 本 号:v1.0
*
*问题描述:写一个函数gotbaha, 验证“每个不小于6的偶数都是两个奇素数之和”,输入一个不小于6的偶数n,找出两个素数,使它们的和为n。
*程序输入:输入一个不小于6的偶数n。
*程序输出:找出两个为素数,使它们的和为n。
*/
#include<iostream>
#include<cmath>
using namespace std;
int prime(int a)
{
int b,c,i;
b=int(sqrt(a));
for(i=2;i<=b;i++)
if(a%i==0)
break;
if(i>b)
c=1;
else
c=0;
return c;
}
void gotbaha(int n)
{
int prime(int n);
int a,b;
for (a=7; a<n; a++)
{
b=n-a;
if (prime(a)&&prime(b))
{
cout<<n<<"="<<a<<"+"<<b;
break;
}
}
}
int main()
{
int n;
int gotbaha(int);
int prime(int);
cin>>n;
gotbaha(n);
return 0;
}
运行结果:
知识点总结:
哥德巴赫猜想的证明。
学习心得:
只输出最小的一组结果。
所以给定的判断条件有要求。
还要注意,判断素数的函数是int,和以前的bool不一样。