用c语言写一段程序,要求任意的整数,当从左向右读与从右向左读是相同的,且为素数时,称为回文素数。求1000以内的所有回文素数。
时间: 2023-05-25 18:02:44 浏览: 98
```c
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
// 判断一个数是否为素数
bool is_prime(int num) {
if (num <= 1) { // 1不是素数
return false;
}
int i, sqrt_num = (int)sqrt(num);
for (i = 2; i <= sqrt_num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
// 判断一个数是否为回文数
bool is_palindrome(int num) {
int temp = num, reverse = 0;
while (temp > 0) {
reverse = reverse * 10 + temp % 10;
temp /= 10;
}
return num == reverse;
}
int main() {
int i;
for (i = 1; i <= 1000; i++) {
if (is_prime(i) && is_palindrome(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
阅读全文