题目描述
将一个正整数所有数字的平方相加可得到一个新的数,不断重复这个过程直到新的数已 经在之前出现过,这样构成了一条数字链。 例如:
1->1
89->145->42->20->4->16->37->58->89
理论上证明了从任一正整数开始,平方和数字链最终都会到达1或89,因此寻找某正整数的平方和数字链到1或89即可。
自定义函数numsChain(num),寻找从num到1或89的平方和数字链中的所有数并将结果返回。主模块中从键盘输入一个数字字符串(正整数),调用numsChain()函数寻找并输出完整的平方和数字链。
输入:一个数值型数据
输出:数字链
样例输入
23
样例输出
23->13->10->1
def numsChain(num):
if num == 1 or num == 89:
return num
else:
return str(num) +'->' + str(numsChain(sum([int(i) **2 for i in str(num)])))
x = numsChain(23)
print(x)