C语言【问题描述】 若将某一素数的各位数字的顺序颠倒后得到的数仍是素数,则此素数称为可逆素数。编写一个判断某数是否可逆素数的函数,在主函数中输入一个整数,再调用此函数进行判断
时间: 2024-01-04 15:19:25 浏览: 113
好的,以下是一种可以实现你描述的功能的 C 语言代码:
```c
#include <stdio.h>
#include <stdbool.h> // 引入 bool 类型
// 判断一个数是否是素数
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_reversible_prime(int num) {
int reverse_num = 0;
int temp = num;
while (temp != 0) {
reverse_num = reverse_num * 10 + temp % 10;
temp /= 10;
}
return is_prime(num) && is_prime(reverse_num);
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (is_reversible_prime(num)) {
printf("%d 是可逆素数\n", num);
} else {
printf("%d 不是可逆素数\n", num);
}
return 0;
}
```
代码思路如下:
1. 首先,定义一个 `is_prime` 函数,用于判断一个数是否是素数。如果该数小于等于 1,直接返回 false;否则,从 2 到该数的平方根范围内依次判断是否有因子,如果有因子,则返回 false,否则返回 true。
2. 接着,定义一个 `is_reversible_prime` 函数,用于判断一个数是否是可逆素数。首先,将该数的各位数字颠倒顺序得到一个新的数,然后调用 `is_prime` 函数判断原数和新数是否都是素数。
3. 最后,在主函数中,从用户输入中获取一个整数 num,调用 `is_reversible_prime` 函数判断该数是否是可逆素数,并输出结果。
希望这个代码可以帮助到你。
阅读全文