输入代码:
/* *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