[Python函数]平方和数字链

题目描述
将一个正整数所有数字的平方相加可得到一个新的数,不断重复这个过程直到新的数已 经在之前出现过,这样构成了一条数字链。 例如:
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)