用c++写所谓“双质数”是指对于两个质数p和q,如果满足p = q + 2,则p和q为双质数。请编程实现利用函数求解闭区间[m, n]之间的双质数,其中m和n均为正整数且m < n。
时间: 2024-05-11 19:17:12 浏览: 199
C++如何判断一个数字是否为质数
5星 · 资源好评率100%
以下是使用C语言编写的双质数求解程序:
```c
#include <stdio.h>
#include <math.h>
int is_prime(int n) {
if (n == 1) {
return 0;
}
int i;
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int m, n;
printf("请输入区间[m, n]的边界m和n(且m<n):");
scanf("%d%d", &m, &n);
int p;
for (p = m; p <= n - 2; p++) {
if (is_prime(p) && is_prime(2 * p + 1)) {
printf("%d和%d是双质数\n", p, 2 * p + 1);
}
}
return 0;
}
```
程序的基本思路是:从m到n-2遍历每个正整数p,判断p和2p+1是否都是质数,如果是,则输出p和2p+1。is_prime函数用于判断一个数是否是质数,若是,返回1,否则返回0。
阅读全文