基本思想:
使用`isPrime()`函数来判断一个数是否为素数,使用`reverseNumber()`函数来翻转一个数字。然后,在`countPalindromePrimes()`函数中遍历2到10000之间的数字,对每个数字进行素数和回文性质的判断,并输出回文素数。最后,在`main()`函数中调用`countPalindromePrimes()`函数,并输出总的回文素数数量。
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
int reverseNumber(int num) {
int reversedNum = 0;
while (num != 0) {
int digit = num % 10;
reversedNum = reversedNum * 10 + digit;
num /= 10;
}
return reversedNum;
}
int countPalindromePrimes() {
int count = 0;
for (int num = 2; num <= 10000; num++) {
if (isPrime(num) && num == reverseNumber(num)) {
printf("%d ", num);
count++;
}
}
printf("\n");
return count;
}
int main() {
int count = countPalindromePrimes();
printf("\nTotal palindrome primes: %d\n", count);
return 0;
}