跳到主要内容

C++ 编写使用函数显示两个区间内质数的程序

为了理解这个示例,你应该具备以下 C++ 编程 主题的知识:

示例:两个间隔之间的素数

#include <iostream>
using namespace std;

int check_prime(int);

int main() {

int n1, n2;
bool flag;

cout << "输入两个正整数:";
cin >> n1 >> n2;

// 如果 n1 大于 n2,交换 n1 和 n2
if (n1 > n2) {
n2 = n1 + n2;
n1 = n2 - n1;
n2 = n2 - n1;
}

cout << n1 << " 和 " << n2 << " 之间的素数有:\n";

for(int i = n1+1; i < n2; ++i) {
// 如果 i 是素数,flag 为真
flag = check_prime(i);

if(flag)
cout << i << ", ";
}

return 0;
}

// 用户自定义函数检查素数
int check_prime(int n) {
bool is_prime = true;

// 0 和 1 不是素数
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;
}

输出

输入两个正整数:12
55
1255 之间的素数有:
13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53

为了打印两个整数之间的所有素数,创建了 check_prime() 函数。这个函数检查一个数字是否为素数

所有在 n1n2 之间的整数都传递给这个函数。

如果传递给 check_prime() 的数字是素数,这个函数返回 true,如果不是,则函数返回 false

如果用户首先输入较大的数字,这个程序将交换这些数字。如果不交换,这个程序将无法工作。