C++ 显示两个区间内的素数程序

要理解本示例,您应该了解以下 C++ 编程 主题


示例 1:显示两个区间之间的素数

#include <iostream>
using namespace std;

int main() {

  int low, high, i;
  bool is_prime = true;

  cout << "Enter two numbers (intervals): ";
  cin >> low >> high;

  cout << "\nPrime numbers between " << low << " and " << high << " are: " << endl;

  while (low < high) {
    is_prime = true;

    // 0 and 1 are not prime numbers
    if (low == 0 || low == 1) {
      is_prime = false;
    }
 
    for (i = 2; i <= low/2; ++i) {
      if (low % i == 0) {
        is_prime = false;
        break;
      }
    }
        
    if (is_prime)
      cout << low << ", ";

    ++low;
  }

  return 0;
}

输出

Enter two numbers (intervals): 0
20
Prime numbers between 0 and 20 are: 
2, 3, 5, 7, 11, 13, 17, 19,

在此程序中,while 循环迭代 (high - low - 1) 次。

在每次迭代中,检查low 是否为素数,并将low 的值加 1,直到low 等于high

访问此页面了解更多关于如何检查一个数是否为素数

如果用户先输入较大的数字,则此程序无法按预期工作。您可以通过交换数字来解决此问题,以防用户先输入较大的数字。


示例 2:输入较大的数字时显示素数

#include <iostream>
using namespace std;

int main() {

  int low, high, temp, i;
  bool is_prime;
    
  cout << "Enter two numbers (intevals): ";
  cin >> low >> high;

  //swapping numbers if low is greater than high
  if (low > high) {
    temp = low;
    low = high;
    high = temp;
  }

  cout << "\nPrime numbers between " << low << " and " << high << " are:" << endl;

  while (low < high) {
    is_prime = true;


    if (low == 0 || low == 1) {
      is_prime = false;
    }

    for (i = 2; i <= low / 2; ++i) {
      if (low % i == 0) {
        is_prime = false;
        break;
      }
    }

    if (is_prime)
      cout << low << ", ";

    ++low;
  }

  return 0;
}

输出

Enter two numbers (intervals): 20
0
Prime numbers between 0 and 20 are: 
2, 3, 5, 7, 11, 13, 17, 19,

访问此页面了解如何使用用户定义函数显示两个区间之间的所有素数

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战