C语言在一定范围内判断素数回文数
时间: 2024-12-23 10:20:31 浏览: 15
在C语言中,判断一个数是否既是素数又是回文数需要分别检查这两个条件。首先,我们来解释一下:
**判断素数**:
1. 素数是指大于1的自然数,除了1和它本身以外不再有其他正因数。例如,2、3、5、7等是素数。
2. 通常,可以采用埃拉托斯特尼筛法(Sieve of Eratosthenes)或简单的试除法来检测一个数是否为素数。
**判断回文数**:
1. 回文数是一个正向读和反向读都一样的数字,如121、12321等。
2. 对于整数,可以直接比较原数与其反转后的数是否相等。
以下是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 = 0, original = num;
while (original > 0) {
reversed = reversed * 10 + original % 10;
original /= 10;
}
return num == reversed;
}
int main() {
int number;
printf("请输入一个整数:");
scanf("%d", &number);
if (is_prime(number) && is_palindrome(number)) {
printf("%d是素数也是回文数。\n", number);
} else if (is_prime(number)) {
printf("%d是素数但不是回文数。\n", number);
} else if (is_palindrome(number)) {
printf("%d是回文数但不是素数。\n", number);
} else {
printf("%d既不是素数也不是回文数。\n", number);
}
return 0;
}
```
阅读全文