编写一个C语言程序,找出并打印出100到1000范围内的所有回文素数。
时间: 2024-11-15 19:20:40 浏览: 27
在C语言中编写一个程序来找出并打印100到1000范围内的所有回文素数,首先需要了解几个关键概念:回文数是指正读和反读都一样的数字,如121、1331等;素数则是指只有两个正因数(1和它本身)的大于1的自然数。
下面是一个简单的C程序实现:
```c
#include <stdio.h>
#include <stdbool.h>
// 判断一个数是否为素数
bool is_prime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
// 判断一个整数是否为回文
bool is_palindrome(int num) {
int reversed_num = 0, original_num = num;
while (num != 0) {
int remainder = num % 10;
reversed_num = reversed_num * 10 + remainder;
num /= 10;
}
return original_num == reversed_num;
}
// 主函数遍历并打印回文素数
void find_palindrome_primes() {
for (int i = 101; i <= 999; i++) {
if (is_palindrome(i) && is_prime(i))
printf("%d ", i);
}
printf("\n");
}
int main() {
find_palindrome_primes();
return 0;
}
```
在这个程序中,我们定义了两个辅助函数`is_prime`检查是否为素数,`is_palindrome`检查是否为回文。主函数`find_palindrome_primes`遍历100到1000之间的数,如果既是回文又是素数,就将其打印出来。
阅读全文