在 C++ 中,我们可以将质数(或质整数,通常简称为“质数”)定义为除了 1 和其本身之外没有其他因数的正整数。例如:2, 3, 5, 7, 11。
这里,程序从用户那里获取两个正整数,并显示这两个数字之间的质数。为此,我们必须检查此区间中的每个数字,并判断它是否是质数。为了检查质数,创建了一个函数 check_prime()。此函数检查给定数字是否是质数。要求用户输入两个正整数并将数字读入变量 n1 和 n2。如果用户先输入一个大数字,那么我们必须交换这些数字。不交换,这个程序将无法工作。
现在,我们必须打开一个循环,从 n1 到 n2 获取每个数字,并将此数字传递给我们创建的函数。如果该数字是质数,此函数将返回 true;如果它是质数,我们必须打印该数字并继续循环。
步骤 1:调用头文件 iostream。
步骤 2: 使用 namespace std。
步骤 3:声明两个整数类型变量 n1、n2 和布尔类型变量 flag;
步骤 4:要求用户输入两个正整数;
步骤 5:将数字读入变量 n1 和 n2;
步骤 6:如果 n1 > n2,则交换这两个数字
步骤 7:从 i = n1 + 1 到 i < n2 迭代循环。
检查输入的数字是否为 0 或 1。如果为真,则打印 n 不是质数
否则,执行循环检查 n 是否为质数。
初始化 i=2 并继续循环直到 i <= n/2;
检查是否 (n % i = 0 )
如果是,则将 is_prime = false;
如果 is_prime 为真,则打印 n 为质数
步骤 8:将 flag 设置为 true;
步骤 9:在屏幕上打印结果
步骤 10:退出
#include <iostream>
using namespace std;
int check_prime(int);
int main() {
int n1, n2;
bool flag;
cout << "Enter two positive integers: ";
cin >> n1 >> n2;
// swapping n1 and n2 if n1 is greater than n2
if (n1 > n2) {
n2 = n1 + n2;
n1 = n2 - n1;
n2 = n2 - n1;
}
cout << "Prime numbers between " << n1 << " and " << n2 << " are:\n";
for(int i = n1+1; i < n2; ++i) {
// if i is a prime number, flag will be equal to 1
flag = check_prime(i);
if(flag)
cout << i << ", ";
}
return 0;
}
// user-defined function to check prime number
int check_prime(int n) {
bool is_prime = true;
// 0 and 1 are not prime numbers
if (n == 0 || n == 1) {
is_prime = false;
}
for(int j = 2; j <= n/2; ++j) {
if (n%j == 0) {
is_prime = false;
break;
}
}
return is_prime;
}
Enter two positive integers: 10 40 Prime numbers between 10 and 40 are: 11, 13, 17, 19, 23, 29, 31, 37,