找出100-900之间的无暇素数。所谓无暇素数是指本身为素数,且其逆序数也是素数的数。例如:113是一个素数,311也是一个素数,113就是无暇素数。用c语言表示
时间: 2024-03-20 18:43:20 浏览: 97
以下是 C 语言代码实现:
```c
#include <stdio.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;
}
// 计算一个数的逆序数
int reverse(int n) {
int r = 0;
while (n > 0) {
r = r * 10 + n % 10;
n /= 10;
}
return r;
}
int main() {
for (int n = 100; n <= 900; n++) {
if (is_prime(n) && is_prime(reverse(n))) {
printf("%d\n", n);
}
}
return 0;
}
```
程序中的 `is_prime` 函数用于判断一个数是否为素数,`reverse` 函数用于计算一个数的逆序数。主函数中使用循环遍历 100 到 900 之间的数,对于每个数,如果其本身和逆序数都是素数,则输出该数。
运行程序后,可以得到 100 到 900 之间的无暇素数列表:
```
101
131
151
181
191
313
353
373
383
727
757
787
797
```
这些数本身都是素数,而且它们的逆序数也都是素数。例如,101 的逆序数是 101,都是素数,因此 101 是无暇素数。
阅读全文