水仙花数
题目一:输入一个数,判断其是否为水仙花数,是则输出yes,不是则输出no。
输入样式:153
输出样式:yes
题目二:输出100-999得所有水仙花数
解析
题目一:
- 水仙花数是每一个位上的数的3次幂之和等于其本身
例:153=1的3次幂+5的3次幂+3的3次幂,则153是水仙花数 - 对于水仙花数的各位求解:
百位=n//100 #取整
十位=n//10%10 #先取整得到百位和十位,再取余得到十位
个位=n%10 #取余m - pow(m,n)→返回m的n次方
题目二:
- 编写一个for循环,遍历100-999内的所有数
- 根据上面的解析得出百位,十位,个位数
- if语句判断该数百位、十位、个位数的3次幂之和是否相等
- 相等则输出
代码
#题目一
n=int(input())
if n==pow(n//100,3)+pow((n//10%10),3)+pow(n%10,3):
print("yes")
else:
print("no")
#题目二
for i in range(100,1000):#由于range函数不读取最后一个数,所以范围要取至1000以读取至999
a=i//100
b=i//10%10
c=i%10
if i==a**3+b**3+c**3:
print(i)
结果
#题目一
153
yes
#题目二
153
370
371
407