c语言求出ab之间的无暇素数
时间: 2023-07-13 08:03:46 浏览: 168
求两个数之间的所有素数C语言代码
以下是一个求解ab之间的无暇素数的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
bool is_prime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int a, b;
printf("请输入a和b的值:");
scanf("%d %d", &a, &b);
printf("%d到%d之间的无暇素数有:\n", a, b);
for (int i = a; i <= b; i++) {
if (is_prime(i) && is_prime(2 * i + 1)) {
printf("%d\n", i);
}
}
return 0;
}
```
该程序通过调用 `is_prime()` 函数来判断一个数是否为素数。在 `main()` 函数中,程序获取用户输入的 `a` 和 `b` 的值,并遍历从 `a` 到 `b` 之间的所有整数。如果一个数 `i` 是素数,并且 `2 * i + 1` 也是素数,则输出 `i`,即为该区间内的无暇素数。
需要注意的是,由于该程序使用了 `sqrt()` 函数来计算平方根,因此需要在编译时加上 `-lm` 参数,以链接数学库。
阅读全文