编写程序,打印“水仙花数”。所谓“水仙花数”是指一个N位正整数(N≥3),其各位数字N次幂的和等于该数字本身。例如,153(153 = 13 + 53 + 33)是一个三位水仙花数。请打印所有三位水仙花数和四位水仙花数。
时间: 2023-03-21 13:03:34 浏览: 86
好的,以下是程序的代码实现,可以打印出所有的三位水仙花数和四位水仙花数:
```python
for num in range(100, 1000):
# 获取个位、十位和百位数字
digit1 = num // 100
digit2 = (num // 10) % 10
digit3 = num % 10
# 判断是否为水仙花数
if num == digit1**3 + digit2**3 + digit3**3:
print(num)
for num in range(1000, 10000):
# 获取千位、百位、十位和个位数字
digit1 = num // 1000
digit2 = (num // 100) % 10
digit3 = (num // 10) % 10
digit4 = num % 10
# 判断是否为水仙花数
if num == digit1**4 + digit2**4 + digit3**4 + digit4**4:
print(num)
```
程序首先使用两个 for 循环分别遍历三位数和四位数。对于每个数,它会将其各位数字分别提取出来,然后判断是否为水仙花数。如果是,则将其打印出来。
相关问题
编写程序,从键盘输入任意一个3位正整数,判断是否"水仙花数"
水仙花数指一个 n 位正整数 (n≥3),它的每个位上的数字的 n 次幂之和等于它本身。例如,153 是一个水仙花数,因为 1^3+5^3+3^3=153。
以下是Python的实现代码:
num = int(input("请输入一个3位正整数:"))
if num < 100 or num > 999:
print("输入不合法!")
else:
a = num // 100 # 百位数
b = num % 100 // 10 # 十位数
c = num % 10 # 个位数
if a**3 + b**3 + c**3 == num:
print(num, "是水仙花数")
else:
print(num, "不是水仙花数")
编写C语言程序,从键盘输入任意一个3位正整数,判断是否"水仙花数"
水仙花数是指一个三位数的各位数字的立方和等于该数本身,例如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;
}
```
程序首先从键盘输入一个三位正整数,然后将其各位数字分别提取出来。通过计算各位数字的立方和,判断该数是否为水仙花数,并输出相应的结果。