c语言编写程序求出ab之间的无暇素数
时间: 2024-04-30 18:21:10 浏览: 50
c代码-输出1000内数值除3余2的素数,10个数字一行,数值间空格__jason
以下是使用C语言编写的程序,用于求解a和b之间的无暇素数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
bool is_prime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
bool is_palindrome(int n) {
int reversed_n = 0;
int temp = n;
while (temp != 0) {
reversed_n = reversed_n * 10 + temp % 10;
temp /= 10;
}
return n == reversed_n;
}
void find_pallindrome_primes(int a, int b) {
for (int i = a; i <= b; i++) {
if (is_prime(i) && is_palindrome(i)) {
printf("%d ", i);
}
}
}
int main() {
int a, b;
printf("Enter the range of numbers: ");
scanf("%d %d", &a, &b);
printf("Palindromic prime numbers in the range %d to %d are: \n", a, b);
find_pallindrome_primes(a, b);
printf("\n");
return 0;
}
```
程序中的 `is_prime` 函数用于判断一个数是否为素数, `is_palindrome` 函数用于判断一个数是否为回文数, `find_pallindrome_primes` 函数用于找到a和b之间的无暇素数,并将它们输出。程序中先获取用户输入的范围,然后调用 `find_pallindrome_primes` 函数进行计算和输出。
可以使用以下命令编译和运行程序:
```
gcc -o pallindrome_primes pallindrome_primes.c
./pallindrome_primes
```
在运行程序时,用户需要输入要查找的范围。程序将输出在该范围内的无暇素数。
阅读全文