c语言判断是否为回文素数
时间: 2024-06-30 17:00:47 浏览: 129
在C语言中,判断一个数是否既是回文又是素数,我们需要分别定义两个条件:回文数和素数。首先,让我们定义这两个概念:
- 回文数:正序和反序读都一样的数字,例如121, 1221等。
- 素数:只有1和自身两个正因数的自然数,比如2, 3, 5, 7等。
下面是一个简单的C语言函数,用于检查一个整数是否同时满足回文和素数这两个条件:
```c
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
bool isPalindrome(int num) {
char str[100];
int len = snprintf(str, sizeof(str), "%d", num);
str[len] = '\0'; // 添加终止符
return strcmp(str, strrev(str)) == 0;
}
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;
}
bool isPalindromePrime(int num) {
if (isPalindrome(num) && isPrime(num)) {
return true;
} else {
return false;
}
}
int main() {
int input;
printf("Enter a number: ");
scanf("%d", &input);
if (isPalindromePrime(input)) {
printf("%d is a palindrome prime.\n", input);
} else {
printf("%d is not a palindrome prime.\n", input);
}
return 0;
}
```
相关问题--:
1. 如何在C语言中检查一个数是否是回文?
2. 为什么在`isPrime`函数中检查`i * i <= num`?
3. 在实际编程中,如何优化`isPrime`函数来提高效率?
阅读全文
相关推荐
















