水仙花数是一个三位数,这个数每个位置上的数字的3次方相加等于它本身。
方法一:将三位数中的个位、十位和百位都单独取出来,每一位都对3进行幂运算后进行求和判断。
for i in range(100, 1000):
# 个位
geWei = int(i % 10)
# 十位
shiWei = int((i % 100) / 10)
# 百位
baiWei = int(i / 100)
if geWei ** 3 + shiWei ** 3 + baiWei ** 3 == i:
print(i)
方法二:通过str()函数将整数转为字符串后通过循环取出字符串每一个字符,将单独的字符通过int()函数转为整型后对3进行幂运算,每一个字符的幂运算的值相加求和进行判断。
for i in range(100, 1000):
stringI = str(i)
sum = 0
for j in stringI:
sum += int(j) ** 3
if sum == i:
print(i)