(1)编写一个Python程序列出100到999之间所有的水仙花数。 (2)编写一个Python程序,判断用户输人的三位数是否为水仙花数。
时间: 2023-06-13 22:06:42 浏览: 117
(1) 编写一个Python程序列出100到999之间所有的水仙花数。
```python
for num in range(100, 1000):
# 将数字转换成字符串并求出每一位上的数字
digit_1 = int(str(num)[0])
digit_2 = int(str(num)[1])
digit_3 = int(str(num)[2])
# 判断是否为水仙花数
if num == digit_1 ** 3 + digit_2 ** 3 + digit_3 ** 3:
print(num)
```
运行程序后,输出结果为:
```
153
370
371
407
```
(2) 编写一个Python程序,判断用户输入的三位数是否为水仙花数。
```python
num = input("请输入一个三位数:")
digit_1 = int(num[0])
digit_2 = int(num[1])
digit_3 = int(num[2])
if int(num) == digit_1 ** 3 + digit_2 ** 3 + digit_3 ** 3:
print(num, "是水仙花数")
else:
print(num, "不是水仙花数")
```
运行程序后,输入一个数字,程序会判断是否为水仙花数,并输出结果。例如,输入153,输出结果为:
```
153 是水仙花数
```
相关问题
水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。要求编写程序,打印[100,999]区间中所有的水仙花数,一行显示2个数,每个数占4列左对齐显示。
水仙花数是一种有趣的数学现象,在编程中,我们可以创建一个简单的函数来检查这个规则,并遍历给定范围内的整数。以下是一个Python程序,用于找到并打印出100到999之间的所有水仙花数:
```python
def is_narcissistic_number(num):
# 将数字转换为字符串并获取长度
n = len(str(num))
# 计算每个位上的数字的n次方和
sum_of_powers = sum(int(digit) ** n for digit in str(num))
# 如果和等于原数,返回True,否则False
return sum_of_powers == num
# 遍历100到999
for i in range(100, 1000):
if is_narcissistic_number(i):
print(f"{i:<4}", end='') # 使用f-string左对齐并限制宽度为4
else:
if (i + 1) % 100 == 0: # 打印换行符每100个数后
print()
if (i + 1) % 2 == 0: # 每两个数之间换行
print()
创建一个函数,接受一个参数max(max>=1000),调用上题编写的判断函数,求 100到max之间的水仙花数
好的,我明白了。下面是你的问题的回答:
以下是函数的代码:
```python
def narcissistic_numbers(maximum):
for num in range(100, maximum + 1):
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
if num == sum:
print(num)
```
你可以调用这个函数来列出100到给定的 `max` 值之间的水仙花数。
阅读全文