Python Nicoqish

尼克彻斯定理即任何一个整数的立方都可以写成一串连续奇数的和。例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
5^3=21+23+25+27+29

定义函数Nicoqish(x)返回和为x的连续奇数的第一个和最后一个值,某一个数可能可以写成多组连续奇数和,只要求返回起始奇数最小的那一组信息。在主模块中输入数据n调用函数输出前n个数相关的式子。
输入
一个[1,20]之间的整数n
输出
[1,n]范围内的整数相关的多行式子

这个如何递归呢?感觉都不是很简便~

def Nicoqish(x): 
    k = x**3 # 数字的三次方 
    i = 1 # 奇数 
    while i <= k: 
        s = 0 # s是这些奇数的和,必须从0开始 
        j = i # j>=i 
        while s<=k: # 奇数的和要小于等于整数的三次方 
            s += j 
            if s==k: 
                return i,j # i是起始位置,j是结束位置 
            j += 2 # 必须是奇数,要加2 
            i+=2

            
if __name__=='__main__': 
    n = int(input()) 
    print('i^3=1') 
    for i in range(2, n+1): 
        result = Nicoqish(i) # print(result) 
        print('{}^{}='.format(i,3),end='') 
        print('+'.join(map(str, range(result[0], result[1]+2, 2)))) # 要包括result[1],所以范围要加个2