验证尼科彻斯定理Python
尼科彻斯定理
http://www.nowcoder.com/questionTerminal/dbace3a5b3c4480e86ee3277f3fe1e85
while True: try: m = int(input()) s = [] for i in range(1, m**3): # 最大基数一定小于基数之和,即:m**3 if i%2 != 0: s.append(i) # 将1到m**3的基数,从小到大逐一追加到列表 s if m ** 3 == sum(s[-m:]): s = s[-m:] # 如果追加某个基数后,列表最后m位之和正好等于 m**3 时,将列表 s 重新赋值为所要找的那 m 个基数 break # 找到那 m 个基数结束当前循环以节约时间 result = str(s[0]) # 输出结果初始赋值列表s的第一个数 for k in range(1, m): result += '+'+str(s[k]) print(result) except: break