.输入一个数字,判断它是不是回文数(设n是一任意自然数。若将n的 各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数) 16.素数 输入一个数字,判断这个数字是不是素数
时间: 2024-10-13 22:04:03 浏览: 90
判断一个数字是否为回文数的算法通常是这样的:
1. 首先获取数字的十进制形式,并转换成字符串以便于比较。
2. 反转字符串并与原字符串进行比较。如果两者相等,那么原始数字就是回文数。
3. 使用循环结构,因为只需要检查到中间位置即可,不必遍历整个数。
下面是一个简单的C程序示例来判断一个数字是否是回文数:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(int n) {
char str[100];
int len = sprintf(str, "%d", n);
str[len - 1] = '\0'; // 添加终止符
return strcmp(str, strrev(str)) == 0;
}
int main() {
int num;
printf("Enter a number: ");
scanf("%d", &num);
if (isPalindrome(num))
printf("%d is a palindrome.\n", num);
else
printf("%d is not a palindrome.\n", num);
return 0;
}
```
判断一个数字是否为素数通常采用试除法:
1. 循环从2开始,一直除到数字开平方根,如果能被任何一个数整除,那么这个数字就不是素数。
2. 如果没有找到能够整除的数,那么这个数字就是素数。
下面是一个简单的C程序示例来判断一个数字是否是素数:
```c
#include <stdbool.h> // C99引入bool
bool isPrime(int n) {
if (n <= 1) return false; // 小于或等于1的数不是素数
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return false; // 能被整除说明不是素数
}
return true;
}
int main() {
int num;
printf("Enter a number: ");
scanf("%d", &num);
if (isPrime(num))
printf("%d is a prime number.\n", num);
else
printf("%d is not a prime number.\n", num);
return 0;
}
```
阅读全文
相关推荐













