python编程判别三位数正整数n是否是水仙花数。
时间: 2023-10-20 18:11:07 浏览: 94
水仙花数是指一个三位数各个位上数字的立方和等于该数本身,例如153就是一个水仙花数,因为1^3+5^3+3^3=153。
以下是判断三位数n是否是水仙花数的Python程序:
```python
n = int(input("请输入一个三位数:"))
a = n // 100 # 取百位数
b = n // 10 % 10 # 取十位数
c = n % 10 # 取个位数
if a**3 + b**3 + c**3 == n:
print(n, "是水仙花数")
else:
print(n, "不是水仙花数")
```
程序中首先获取用户输入的三位数,然后分别取出该数的百位数、十位数和个位数。接着判断这三个数的立方和是否等于该数本身,如果是则输出“是水仙花数”,否则输出“不是水仙花数”。
相关问题
python输入一个正整数n输出n位所有水仙花数
水仙花数是指一个三位数(如153),其各位数字立方之和等于该数本身。例如,1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。为了编写一个Python程序,找出所有n位的水仙花数,我们可以创建一个函数,遍历所有可能的组合,并检查它们是否满足水仙花条件。
这是一个简单的实现:
```python
def is_nine_digit_narcissistic(num):
# 将数字转换为字符串以便获取每一位
str_num = str(num)
# 确保我们处理的是一个9位数字
if len(str_num) != 3:
return False
# 检查各个位的立方和是否等于原数
sum_of_cubes = sum(int(digit)**3 for digit in str_num)
return num == sum_of_cubes
def find_n_narcissistic_numbers(n):
# 如果n小于3,因为最小的水仙花数是153,所以返回空列表
if n < 3:
return []
lower_bound = 10**(n - 1)
upper_bound = (10**n) - 1
narcissistic_numbers = []
for num in range(lower_bound, upper_bound + 1):
if is_nine_digit_narcissistic(num):
narcissistic_numbers.append(num)
return narcissistic_numbers
# 获取用户输入的n
n = int(input("请输入一个正整数n:"))
result = find_n_narcissistic_numbers(n)
if result:
print(f"在{n}位范围内,所有的水仙花数有:{result}")
else:
print(f"在{n}位范围内,没有找到水仙花数。")
python编程找出3位整数中所有的水仙花数
以下是 Python 的代码
```python
for i in range(100, 1000):
num_str = str(i)
sum = 0
for digit_str in num_str:
digit = int(digit_str)
sum += digit ** 3
if sum == i:
print(i)
```
Output:
```bash
153
370
371
407
```
阅读全文