自学编程Python日更成长营

自学Python:验证尼科彻斯定理

2022-03-08  本文已影响0人  小强聊成长

尼科尼科彻斯定理是什么?

彻斯定理可以叙述为“任何一个整数的立方都可以表示成一串连续的奇数的和”。

根据尼科彻斯定理的叙述举例如下:

3^3=7+9+11=27

4^3=13+15+17+19=64

5^3=21+23+25+27+29=125

想要用程序验证,可以按照下面的思路。

先计算任意输入数n的立方,然后从奇数1开始进行累加,每次加2以保证下一个数也是奇数,如果累加和超过n的立方,则再进行下一次尝试,即从3开始进行累加,如此进行下去,直到找到一串连续的奇数,它们的和等于n的立方。

下面直接上代码:

########################

if __name__ == "__main__":

    sum = 0  # sum变量存放奇数的累加和,初值为0

    n = int(input("请输入大于1的n值:"))

    if n <= 1:

        print("输入的n值有误")

        exit()

    cube = n * n * n    # cube存放n的立方,也可以写成cube = n ** 3

    i = 1# 外层循环通过累加和来查找奇数序列

    while i < cube:

        j = i # 内层循环通过累加和来查找奇数序列

        while j < cube:

            sum += j

            if sum == cube:# 找到了奇数序列

                print("%d = %d + %d + ... + %d" %(cube, i, i+2, j))

            if sum > cube:# 没找到,退出内层循环,返回外层for循环

                sum = 0  # 将sum重置为0,以便开始下次试探

                break

            j += 2

        i += 2

########################

执行结果如下:

请输入大于1的n值:9

729 = 1 + 3 + ... + 53

729 = 73 + 75 + ... + 89

729 = 241 + 243 + ... + 245

只要执行结果里有一组就算成立。

________________END______________

上一篇下一篇

猜你喜欢

热点阅读