输入代码:
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:sum123.cpp
*作 者:林海云
*完成日期:2014年12月30日
*版 本 号:v2.0
*
*问题描述:写一个函数gotbaha, 验证“每个不小于6的偶数都是两个奇素数之和”,输入一个不小于6的偶数n,找出两个素数,使它们的和为n。
*程序输入: 一个不小于6的偶数n
*程序输出: 符合要求的两个素数
*/
#include<iostream>
#include<cmath>
using namespace std;
int prime(int y);
int main()
{
int x,i,y,z;
while (cin>>x)
{
if(x<6||x%2!=0)
cout<<"Error!\n";
else
{
for (i=2; i<=x/2; ++i)
{
y=i;
if (prime(y))
z=x-y;
if (prime(z))
{
if (x==y+z)
cout<<x<<"="<<y<<"+"<<z<<endl;
}
}
}
}
return 0;
}
int prime(int y)
{
int i;
double k=sqrt(y);
for (i=2; i<=k; i++) //这里应为<= 否则会在判断一些素数平方数时出错 比如4 9 25等
{
if (y%i==0)
return 0;
}
return 1;//表示返回值为真
}
运行结果:
总结:
该题的要点是素数的算法,利用循环体穷举求出符合要求的两个素数
原文地址:http://blog.csdn.net/linhaiyun_ytdx/article/details/42268729