验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
输入一个正整数m(m≤100),将m的立方写成m个连续奇数之和的形式输出。
数据范围:
进阶:时间复杂度:,空间复杂度:
验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
输入一个int整数
输出分解后的string
6
31+33+35+37+39+41
我是这样想的,既然是加起来等于m的三次方,那可以用暴力办法来遍历从1到m**3的所有奇数,直到找到一个奇数is使得连续m几个奇数的和等于m**3: n = int(input()) l = [] sum = n**3 for i in range(1,sum,2): if i//2 != 0 and n*i+n*(n-1) == sum: # l.append(i) for j in range(0,n): l.append(i+j*2) print("+".join(map(str,l)))
N = int(input()) N_list = [] if 1<=N <=100: m = N**2 n = m - N +1 for i in range(N): N_list.append(n+2*i) print('+'.join(map(str,N_list)))
n = int(input()) l = [] for i in range(n): a = (n - 1) ** 2 + n + 2 * i l.append(a) print("+".join(map(str, l)))