C++求一个偶数分解成两个素数之和并且写出所有组合
需求分析
编制具有如下原型的函数prime,用来判断整数n是否为素数:bool prime(int n); 而后编制主函数,任意输入一个大于4的偶数d,找出满足d=d1+d2的所有数对,其中要求d1与d2均为素数(通过调用prime来判断素数)。如偶数18可以分解为11+7以及13+5;而偶数80可以分解为:43+37、61+19、67+13、73+7。
提示:i与d-i的和恰为偶数d,而且只有当i与d-i均为奇数时才有可能成为所求的“数对”。
本题主要是求任意一个大于4的偶数,然后求用两个素数组成。然后求出所有组合。
6.2概要设计
利用prime函数进行循环选择从2开始知道n-1,看是否可以成为已经输入的数的素数组成部分,然后进行输出。
6.3详细设计与编码
实验代码见上传文件
流程图如下:prime
Main
6.4调试分析
运行程序,用户根据提示输入一个大于4的偶数
加入输入8会得到结果为
如果是80的话会得到
6.5用户使用说明
用户可以运行程序,根据提示输入大于4的偶数。然后程序就会给出答案。
6.6设计心得
本程序的设计还是面向过程的思想,不过在设计的过程中遇到了不少问题,最后经过和老师和同学的探讨还是解决了问题,达到了光明的彼岸。
#include <iostream>
#include <cmath>
using namespace std;
bool prime(int n)
{
for(int i=2;i<sqrt(n);i++)
if(n%i==0)
break;
if(i>sqrt(n))
return true;
else
return false;
}
int main()
{
int num;
cout <<"请任意输入一个大于4的偶数:";
原文请找腾讯752018766优,文-论'文.网http://www.youerw.com break;
else
{
cout <<"输入有误!请重新输入:";
cin >>num;
}
}
for(int i=3;i<num/2+1;i=i+2)
{
if(prime(i) && prime(num-i))
cout <<num<<"="<<i<<"+"<<num-i<<", ";
}
cout <<endl; return 0;},1819