解题思路:
需要判断三个素数,所以先写一个实现判断素数的方法fox。
判断,如果是素数则返回1,否则返回0。
然后,定义一个静态变量num进行计数,定义一个变量data来源键盘输入,再定义3个变量x,y,z为那3个素数。
接着进行3层循环判断
当 x,y,z 均为素数 且 它们的和 等于 data 时输出
代码如下:
#include <iostream>
#include <string>
using namespace std;
int fox(int x)//定义
{
int i = 2, bound = int(sqrt(float(x)));//判断平方根
while (i <= bound)
{
if (x%i == 0)
return 0; //不为素数,返回0
i++;
}
return 1; //为素数,返回1
}
int main()
{
static int num = 1;//计数
int data, x, y, z; //data 为输入
cout << "输入一个数 ";
cin >> data;
for (x = 3; x < data; x++)
{
for (y = x; y < data; y++)
{
for (z = y; z < data; z++)
{
//当 x,y,z 均为素数 且 它们的和 等于 data 时输出
if (fox(x) && fox(y) && fox(z) && (data == x + y + z))
cout << data << " = " << x << " + " << y << " + " << z << " num:" << num++ << endl;
}
}
}
//system("pause");
return 0;
}
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!