目录
题目
如果把一个正整数的每一位都平方后再求和,得到一个新的正整数.对新产生的正整数再做同样的处理.
如此一来,你会发现,不管开始取的是什么数字,最终如果不是落入1,就是落入同一个循环圈.
请写出这个循环圈中最大的那个数字.
请填写该最大数字.
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字.
思路
写一个函数用来得到新整数,将新整数放入列表,用while来循环,直到有一个新整数与列表中的数相同就跳出循环
代码
答案为145
def new_number(x):
y=0
for i in str(x):
i=int(i)
y+=i**2
return y
n=int(input('请输入一个除1以外的数:'))
new=[]
maxn=0
while 1:
n=new_number(n)
if n in new:
break
new.append(n)
if maxn<n:
maxn=n
print(maxn)