page contents

实现:输入一个数,判断它能否组成3个素数的和

输入一个数,判断它能否组成3个素数的和

解题思路:

需要判断三个素数,所以先写一个实现判断素数的方法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;

}

  • 发表于 2021-05-13 21:14
  • 阅读 ( 788 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
文双
文双

NB

71 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章