题目描述:
尼克彻斯定理即任何一个整数的立方都可以写成一串连续奇数的和。例如:
13=1
23=3+5
33=7+9+11
43=13+15+17+19
53=21+23+25+27+29
……
定义函数Nicoqish(x)返回和为x的连续奇数的第一个和最后一个值,某一个数可能可以写成多组连续奇数和,只要求返回起始奇数最小的那一组信息。在主模块中输入数据n调用函数输出前n个数相关的式子。
输入:
一个[1,20]之间的整数n
输出:
[1,n]范围内的整数相关的多行式子
输入样例:
5
输出样例:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=1+3+5+7+9+11+13+15
5^3=21+23+25+27+29
def Nicoqish(x):
s=x**3
lst=[]
for j in range(s+1):
for i in range(j+1):
if j**2-i**2==s:
lst.append(2*i+1)
lst.append(2*j-1)
t='+'.join(str(i) for i in range(lst[0],lst[1]+1,2))
print('{}^3={}'.format(x,t))
n=int(input())
print('1^3=1')
for i in range(2,n+1):
Nicoqish(i)