复习了函数用法,及如何用函数判断是否为素数,同时需要提高代码的可读性,可加入一些注释,考虑到用户感受,提高程序实用性。
注意在利用for循环遍历的时候,注意考虑到重复。(遍历一半)
#include <iostream>
#include <math.h>//引用数学函数头文件
using namespace std;
bool checksushu(int n)//定义一个检查是否为素数的函数
{
int i,flag=1;//设置一个flag变量
if(n<=1) return false;//最小的素数是2
for(i=2;i<=sqrt(n);i++) /*平方根法:只需将该数除以2到它的平方根之间的每一个数,如果能够被其中任何一个数整除,则该数不是素数;
否则,该数为素数。这是因为一个合数必定有一个小于或等于其平方根的因数。*/
{
if(n%i==0)
{
flag=0;
break;
}
}
if(flag==0) return false;
if(flag==1) return true;
}
int main()
{
int num,i,a;
cout<<"请输入一个大于7的偶数:\n";
cin>>num;
if(num<=7&&num%2!=0)
{
cout<<"输入错误,请重新输入\n";
return 0;//这里不可以写cin>>num,如果这样写就输入值不合要求也会被输入
} //输入完成
for(i=2;i<=num/2;i++)
{
a=num-i;
if(checksushu(i)==1&&checksushu(a)==1)
{
cout<<num<<"分解的两个素数为:"<<i<<"和"<<a<<endl;
}
}
return 0;
}