c语言判断给定的一个数是否是基数,偶数,合数,完数,水仙花的代码?

c语言中判断一个数是否为基数,偶数,质数或合数,完数,水仙花数的代码怎么编写?

以下是 C 语言判断一个数是否是奇数、偶数、质数、完数、水仙花数的代码:

```c
#include <stdio.h>

/* 判断是否为奇数 */
int is_odd(int num) {
return num % 2 != 0;
}

/* 判断是否为偶数 */
int is_even(int num) {
return num % 2 == 0;
}

/* 判断是否为质数 */
int is_prime(int num) {
if (num <= 1) {
return 0;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}

/* 判断是否为完数 */
int is_perfect(int num) {
int sum = 0;
for (int i = 1; i <= num / 2; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum == num;
}

/* 判断是否为水仙花数 */
int is_narcissistic(int num) {
int n = num;
int sum = 0;
int digits = 0;
while (n > 0) {
digits++;
n /= 10;
}
n = num;
while (n > 0) {
sum += pow(n % 10, digits);
n /= 10;
}
return sum == num;
}

int main() {
int num;
printf("请输入一个数字:");
scanf("%d", &num);
if (is_odd(num)) {
printf("%d 是奇数
", num);
} else {
printf("%d 是偶数
", num);
}
if (is_prime(num)) {
printf("%d 是质数
", num);
} else {
printf("%d 是合数
", num);
}
if (is_perfect(num)) {
printf("%d 是完数
", num);
} else {
printf("%d 不是完数
", num);
}
if (is_narcissistic(num)) {
printf("%d 是水仙花数
", num);
} else {
printf("%d 不是水仙花数
", num);
}
return 0;
}
```

在上面的代码中,我们定义了 5 个函数来判断一个数是否为奇数、偶数、质数、完数、水仙花数。其中,is_odd 函数判断一个数是否为奇数,is_even 函数判断一个数是否为偶数,is_prime 函数判断一个数是否为质数,is_perfect 函数判断一个数是否为完数,is_narcissistic 函数判断一个数是否为水仙花数。主函数中,我们读入一个数字,然后将其分别传入这几个函数中进行判断,最后打印出结果。

示例输出:

```
请输入一个数字:6
6 是偶数
6 不是质数
6 是完数
6 不是水仙花数
```

希望这个代码可以帮助你实现你所需的功能
温馨提示:答案为网友推荐,仅供参考