当前位置:   article > 正文

给定N个随机正整数,将其中的质数输出_最大质数c++

最大质数c++

给定N个随机正整数,将其中的质数输出。
例如:
输入:[1, 2, 3, 5, 11, 12]
输出:[2, 3, 5, 11]
注意:
1、输出数组剩余元素先后顺序需要与原数组保持一致。
2、给出数组无需去重。

 

先说一下我的思路:

1、把所有的1修改为0(在这里用0值表示这个数之前是合数,已被剔除)。

2、把所有的偶数修改为0。

3、循环把所有的 2 * n + 3 修改为0。在此步骤的每一次循环中,都会从剩余数字中找出最大的值 nMaxRemainNum。在下一轮循环中,2 * n + 3 循环到 nMaxRemainNum 的平方根即可。

4、剩下的不为0的数据,就是质数。

 

以下是我写的代码,跑了几遍,没发现BUG。

  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <math.h>
  5. using namespace std;
  6. int g_nMaxNum = 100; // 最大数值
  7. int g_nNumCount = 200; // 数字数量
  8. // 输出数组
  9. void PrintArr(int* pNum, int nCount)
  10. {
  11. for (int nIndex = 0; nIndex < nCount; ++nIndex)
  12. {
  13. if (0 != pNum[nIndex])
  14. {
  15. cout << pNum[nIndex] << " ";
  16. }
  17. }
  18. cout << endl;
  19. }
  20. // 获取随机
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/328778
推荐阅读
相关标签
  

闽ICP备14008679号