C语言:所谓“双质数”是指对于两个质数p和q,如果满足p = q + 2,则p和q为双质数。请编程实现利用函数求解闭区间[m, n]之间的双质数,其中m和n均为正整数且m < n。
时间: 2024-02-24 18:00:43 浏览: 206
以下是 C 语言的程序实现:
```c
#include <stdio.h>
int is_prime(int num) { // 判断是否为质数
if (num <= 1) {
return 0;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
void find_twin_primes(int m, int n) { // 寻找双质数
for (int i = m; i <= n - 2; i++) {
if (is_prime(i) && is_prime(i + 2)) {
printf("%d %d\n", i, i + 2);
}
}
}
int main() {
int m, n;
printf("请输入m和n的值:");
scanf("%d %d", &m, &n);
printf("闭区间[%d, %d]内的双质数为:\n", m, n);
find_twin_primes(m, n);
return 0;
}
```
程序中先定义了一个 `is_prime` 函数,用来判断一个数是否为质数。接着定义了 `find_twin_primes` 函数,该函数用来寻找闭区间 `[m, n]` 中的双质数。最后在 `main` 函数中通过用户输入的 `m` 和 `n` 调用 `find_twin_primes` 函数并输出结果。
需要注意的是,该程序中没有对输入的 `m` 和 `n` 进行合法性检查。在实际使用中,应该对输入的值进行合法性判断。
阅读全文