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
12 和 55 之间的素数有:
13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53
为了打印两个整数之间的所有素数,创建了 check_prime()
函数。这个函数检查一个数字是否为素数。
所有在 n1
和 n2
之间的整数都传递给这个函数。
如果传递给 check_prime()
的数字是素数,这个函数返回 true
,如果不是,则函数返回 false
。
如果用户首先输入较大的数字,这个程序将交换这些数字。如果不交换,这个程序将无法工作。