编写一个函数shuixian(),其功能是判断一个数是不是水仙花数。要求主函数main()shuixian(),输出所有的水仙花数
时间: 2023-06-02 08:05:48 浏览: 147
shuixian.rar_:www.shuixian.in_www.shuixian
好的,让我来为您解答这个问题。
首先,水仙花数是指一个n位正整数(n≥3),其各个数位数字的n次方之和等于该数本身。例如,153就是一个三位水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是实现shuixian()函数的Python代码:
```python
def shuixian(num):
# 获取数字的位数
n = len(str(num))
# 初始化总和为0
total = 0
# 计算各位数字的n次方之和
for i in str(num):
total += int(i)**n
# 判断是否为水仙花数
if total == num:
return True
else:
return False
```
接着,在主函数main()中,我们可以通过循环调用shuixian()函数,来输出所有的水仙花数。以下是主函数main()的Python代码:
```python
def main():
# 遍历所有三位数,判断是否为水仙花数
for i in range(100, 1000):
if shuixian(i):
print(i)
if __name__ == '__main__':
main()
```
运行上述代码,即可输出所有的三位水仙花数:153、370、371、407。
注意,此代码只能判断三位数的水仙花数。如果需要判断更高位数的水仙花数,则需要稍作修改。
阅读全文