判断一个输入整数是否为水仙花数
时间: 2024-10-28 11:12:52 浏览: 27
水仙花数是一种特殊的三位数,其各位数字立方之和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。判断一个整数是否为水仙花数可以编写如下的Python代码:
```python
def is_hyponastus_number(n):
"""
判断给定的整数n是否为水仙花数
参数:
n (int): 待检查的三位数
返回:
bool: 如果n是水仙花数则返回True,否则返回False
"""
# 检查数字范围,非三位数直接返回False
if n < 100 or n > 999:
return False
# 分解数字并计算每个位的立方和
digits = [int(d) for d in str(n)]
sum_of_cubes = sum(d**3 for d in digits)
return sum_of_cubes == n
# 测试
test_number = int(input("请输入一个三位数: "))
if is_hyponastus_number(test_number):
print(f"{test_number} 是水仙花数")
else:
print(f"{test_number} 不是水仙花数")
相关问题
判断一个三为整数是否为水仙花数
水仙花数指一个三位数,其各个数字的立方和等于该数本身。例如,153是一个水仙花数,因为1³ + 5³ + 3³ = 153。
以下是Python代码实现:
```python
num = int(input("请输入一个三位数:"))
# 分离出各个数位
hundreds = num // 100
tens = (num // 10) % 10
units = num % 10
# 判断是否为水仙花数
if num == hundreds**3 + tens**3 + units**3:
print(num, "是水仙花数")
else:
print(num, "不是水仙花数")
```
示例输出:
```
请输入一个三位数:153
153 是水仙花数
```
```
请输入一个三位数:370
370 是水仙花数
```
```
请输入一个三位数:456
456 不是水仙花数
```
编写一个函数用于判断一个整数是否为水仙花数,在主函数中任意输入一个整数,调用函数判断该数是否为水仙花数
一个n位数,它的每个位上的数字的n次幂之和等于它本身,则称其为n位水仙花数。比如说,153就是一个3位水仙花数,因为1³+5³+3³=153。
下面是一个判断一个整数是否为水仙花数的函数:
```python
def is_narcissistic_number(num):
# 将整数转为字符串,计算位数
n = len(str(num))
sum = 0
# 计算每个位上的数字的n次幂之和
for i in str(num):
sum += int(i) ** n
# 判断是否为水仙花数
if sum == num:
return True
else:
return False
```
下面是一个调用该函数的示例程序:
```python
if __name__ == "__main__":
num = int(input("请输入一个整数:"))
if is_narcissistic_number(num):
print(num, "是水仙花数")
else:
print(num, "不是水仙花数")
```
你可以在主函数中任意输入一个整数,程序会自动判断该数是否为水仙花数。
阅读全文