python代码实例003——阿姆斯特朗数/水仙花数

如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。
例如1^3 + 5^3 + 3^3 = 153

  1. 第一种方法
# 获取用户输入的数字
num = int(input("请输入一个数字: "))
 
# 初始化变量 sum
sum = 0
# 指数
n = len(str(num))
 
# 检测
temp = num
while temp > 0:
   digit = temp % 10
   sum += digit ** n
   temp //= 10
 
# 输出结果
if num == sum:
   print(num,"是阿姆斯特朗数")
else:
   print(num,"不是阿姆斯特朗数")
  1. 第二种方法
def Narcissus():    
   for each in range(100, 1000):        
       temp = each        
       sum = 0        
       while temp:            
             sum = sum + (temp%10) ** 3            
             temp = temp // 10  # 注意这里用地板除         
       if sum == each:            
          print(each, end='\t')
print("所有的水仙花数分别是:", end='')
Narcissus()

  1. 第三种方法
def Narcissus():	
  for i in range(100,1000):		
     if int(str(i)[0])**3 + int(str(i)[1])**3 + int(str(i)[2])**3 == i:
     	print(i)

你可能感兴趣的