4. 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。请编写程序,检测用户输入的数字是否为阿姆斯特朗数。
时间: 2023-09-05 07:15:13 浏览: 124
好的,以下是 Python 代码实现:
```python
num = input("请输入一个正整数:") # 获取用户输入的数字
n = len(num) # 获取数字的位数
sum = 0 # 初始化各位数字的 n 次方之和
for i in num:
sum += int(i) ** n # 计算各位数字的 n 次方之和
if sum == int(num): # 判断是否为阿姆斯特朗数
print(num, "是阿姆斯特朗数")
else:
print(num, "不是阿姆斯特朗数")
```
代码逻辑比较简单,首先获取用户输入的数字,然后计算各位数字的 n 次方之和,最后判断是否等于原数字即可。
相关问题
如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。请编写程序,检测用户输入的数字是否为阿姆斯特朗数。
以下是Python实现:
num = input("请输入一个正整数:")
n = len(num)
total = 0
for i in num:
total += int(i)**n
if total == int(num):
print(num, "是阿姆斯特朗数")
else:
print(num, "不是阿姆斯特朗数")
首先,读取用户输入的正整数,使用len()函数获取其位数n。然后遍历该数的每一位数字,将其的n次方加起来,得到total。最后判断total是否等于原数,如果相等,则输出该数是阿姆斯特朗数,否则输出不是。
题目:如果一个n位正整数等于其各位数字的n次方之 和,则称该数为阿姆斯特朗数。 根据描述补充fun函数,其功能为检测用户输入的数字是否为阿姆斯特朗数 例如: 1^3 + 5^3 + 3^3 = 153。则153是阿姆斯特朗数
好的,根据您的要求,我来补充 fun 函数,实现判断一个数是否是阿姆斯特朗数的功能。以下是代码实现:
```python
def fun(num):
# 先计算出num是几位数
n = len(str(num))
# 初始化sum为0
sum = 0
# 循环处理每一位数字
for i in str(num):
# 将每一位数字的n次方加入sum中
sum += int(i) ** n
# 判断sum是否等于num,是则为阿姆斯特朗数,否则不是
if sum == num:
return True
else:
return False
```
您可以将一个数字传入该函数,函数将返回 True 或者 False,表示该数字是否为阿姆斯特朗数。例如,传入 153,该函数将返回 True,因为 1^3 + 5^3 + 3^3 = 153。
阅读全文