编写C语言程序,从键盘输入任意一个3位正整数,判断是否"水仙花数"
时间: 2023-05-29 19:05:23 浏览: 79
水仙花数是指一个三位数的各位数字的立方和等于该数本身,例如153就是一个水仙花数,因为1的立方+5的立方+3的立方等于153。
以下是实现该功能的C语言程序:
```c
#include <stdio.h>
int main() {
int num, digit1, digit2, digit3;
printf("请输入一个三位正整数:");
scanf("%d", &num);
digit1 = num / 100; // 获取百位数字
digit2 = num / 10 % 10; // 获取十位数字
digit3 = num % 10; // 获取个位数字
if (num == digit1*digit1*digit1 + digit2*digit2*digit2 + digit3*digit3*digit3) {
printf("%d是水仙花数\n", num);
} else {
printf("%d不是水仙花数\n", num);
}
return 0;
}
```
程序首先从键盘输入一个三位正整数,然后将其各位数字分别提取出来。通过计算各位数字的立方和,判断该数是否为水仙花数,并输出相应的结果。
相关问题
C语言编写程序从键盘输入一个正整数判断,该数是否为素数
您好,根据您的要求,我为您提供判断正整数是否为素数的C语言程序。请参考以下代码:
```
#include <stdio.h>
int main()
{
int n, i;
printf("请输入一个正整数:");
scanf("%d", &n);
for (i = 2; i <= n-1; i++) {
if (n % i == 0) {
break;
}
}
if (i == n) {
printf("%d是素数。", n);
} else {
printf("%d不是素数。", n);
}
return 0;
}
```
该程序先从键盘读入一个正整数,然后通过一个for循环判断这个数是否为素数。如果这个数能被2到n-1之间的任何一个数整除,那么就不是素数;否则就是素数。
从键盘输入一个十进制正整数,编写c语言程序判断该数是不是一个超级素数
好的,以下是一个 C 语言程序来判断一个数是否为超级素数:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int n) {
if (n < 2) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
bool is_superprime(int n) {
if (!is_prime(n)) {
return false;
}
while (n > 0) {
int digit = n % 10;
if (!is_prime(digit)) {
return false;
}
n /= 10;
}
return true;
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
if (is_superprime(n)) {
printf("%d 是超级素数\n", n);
} else {
printf("%d 不是超级素数\n", n);
}
return 0;
}
```
这段代码中,我们同样定义了两个函数 is_prime 和 is_superprime。is_prime 函数用于判断一个数是否为素数,is_superprime 函数则用于判断一个数是否为超级素数。在 is_superprime 函数中,我们通过将该数不断除以 10 并取余数的方式遍历该数的每一位数字,并使用 is_prime 函数判断该数字是否为素数,来判断该数是否为超级素数。
最后,我们从键盘输入一个正整数 n,并调用 is_superprime 函数来判断该数是否为超级素数,然后输出结果。