PAT 1013 数素数

r囧r小猫 2022-08-18 02:58 264阅读 0赞

令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。

输入格式:

输入在一行中给出M和N,其间以空格分隔。

输出格式:

输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。

输入样例:

  1. 5 27

输出样例:

  1. 11 13 17 19 23 29 31 37 41 43
  2. 47 53 59 61 67 71 73 79 83 89
  3. 97 101 103

代码实现:

  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <cstdio>
  5. #include <cmath>
  6. #include <cstdlib>
  7. #include <cstring>
  8. using namespace std;
  9. /* 判断一个数是不是素数 */
  10. bool isPrimeNum(const int num)
  11. {
  12. if(num == 2)
  13. {
  14. return true;
  15. }
  16. int len = (int)sqrt(num);
  17. int i = 0;
  18. for(i = 2; i <= len; i++)
  19. {
  20. if(num % i == 0)
  21. {
  22. return false;
  23. }
  24. }
  25. return true;
  26. }
  27. int main()
  28. {
  29. int M = 0, N = 0;
  30. int num = 2, cnts = 0;
  31. vector<int> vecPrimer;
  32. int i = 0;
  33. cin >> M >> N;
  34. while(cnts < N)
  35. {
  36. /* 判读是不是素数 */
  37. if (isPrimeNum(num) == true)
  38. {
  39. vecPrimer.push_back(num);
  40. cnts++;
  41. }
  42. num++;
  43. }
  44. /* 输出满足的数据 */
  45. cnts = 0;
  46. for(i = M; i <= N; i++)
  47. {
  48. if(cnts == 0)
  49. {
  50. cout << vecPrimer[i-1];
  51. }
  52. else
  53. {
  54. cout << " " << vecPrimer[i-1];
  55. }
  56. if(cnts == 9)
  57. {
  58. cout << endl;
  59. cnts = 0;
  60. }
  61. else
  62. {
  63. cnts++;
  64. }
  65. }
  66. return 0;
  67. }

发表评论

表情:
评论列表 (有 0 条评论,264人围观)

还没有评论,来说两句吧...

相关阅读

    相关 PAT 1013 素数

    令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。 输入格式: 输入在一行中给出M和N,其间以空格分隔。 输出格式: 输出从

    相关 1013. 素数 (20)

    令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。 输入格式: 输入在一行中给出M和N,其间以空格分隔。 输出格式: 输出从

    相关 1013 素数

    令 Pi 表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 PM 到 PN 的所有素数。 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔。 输

    相关 PATB1013素数

    令 P​i​​ 表示第 i 个素数。现任给两个正整数 M≤N≤10​^4​​,请输出 P​M​​ 到 P​N​​ 的所有素数。 输入格式: 输入在一行中给出 M 和 N

    相关 1013 素数 (20 分)

    令 P​i​​ 表示第 i 个素数。现任给两个正整数 M≤N≤10​4​​,请输出 P​M​​ 到 P​N​​ 的所有素数。 输入格式: 输入在一行中给出 M 和 N,