python测试尼可彻斯定理

定义函数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):
k = x**3
i = 1
while i <= k:
s = 0
j = i # j>=i
while s<=k:
s += j
if s==k:
return i,j
j += 2
i+=2

你好这是我的解法【可能还有其他解法】


def Nicoqish(x):
    x=x**3
    i=1
    j=1
    while sum(range(j,i+1,2))!=x:
        i+=2
        if i>=x:
            i=1
            j+=2
            if j>=x:
                raise TimeoutError("数字%d不可以被写成连续奇数连加的形式")
    return j,i