Python学習:宿題03_Pythonで100-999の間のすべての水仙の花の数を求めます

685 ワード


水仙花数とは、nビットの正の整数(n>=3)を指し、その各数字のn乗の和はそれ自体に等しい.例:
153=1*1*1+5*5*5+3*3*3、153は3桁で、その各数字の3乗の和は153に等しい.
python言語で実現して100~999の間のすべての水仙の花数を求める.
分析過程:正整数nの個位10位100位をそれぞれ取り出し、べき乗の和を求める.個位百位のほうが分割しやすいので、10位の場合はまず百位を減らしてから除算して計算することができます.
 
#  -*- coding:utf-8 -*-
#  coding=utf-8
#  coding:utf-8

print("100-999        :")
for a in range(100,999):                       #     100-999    
    i = int(a % 10)                              #     
    j = int(a/100)                               #     
    k = int((a - j*100)/10)                  #         
    if i**3 + j**3 + k**3 == a:            #      ,        
        print(a)