编程心得

    技术2022-07-10  90

    第一次试尝发表一篇文章

    哥德巴赫猜想大概的意思是:一个不小于6的偶数都是两个奇素数之和,即所谓的1+1=2。我当然无法证明,写一个验证程序玩玩还是可以的,我用Python,不吝赐教。

    """ 哥德巴赫猜想。一个不小于6的偶数都是两个奇素数之和,一个不小于9的奇数都是3个奇素数之和。 输入任意一个上述范围的整数,判断是否满足要求。 """ import math import time def prime(m): x = math.ceil(math.sqrt(m)) for k in range(3, x + 2, 2): if m != k and m % k == 0: return False return True def even_numbers(m): for k in range(3, int(m / 2) + 2, 2): if prime(k) and prime(m - k): print("{0}+{1}={2}".format(k, m - k, m)) return True return False def odd_number(m): for i in range(3, int(m / 2) + 2, 2): if prime(i): for j in range(3, int((m - i) / 2) + 2, 2): if prime(j) and prime(m - i - j): print("{0}+{1}+{2}={3}".format(i, j, m - i - j, m)) return True return False if __name__ == '__main__': try: n = int(input("请输入一个不小于6的偶数或不小于9的奇数:\n")) if n == 7 or n < 6: print("输入错误!") exit() print("计算中……") t0 = time.time() mark = even_numbers(n) if n % 2 == 0 else odd_number(n) print("耗时{0}s".format(time.time() - t0)) if not mark: print("验证错误!") except ValueError: print("输入错误!") D:\Python\study\venv\Scripts\python.exe D:/Python/study/1+1=2.py 请输入一个不小于6的偶数或不小于9的奇数: 123456789876543212 计算中…… 211+123456789876543001=123456789876543212 耗时39.79626250267029s Process finished with exit code 0 D:\Python\study\venv\Scripts\python.exe D:/Python/study/1+1=2.py 请输入一个不小于6的偶数或不小于9的奇数: 12345678987654321 计算中…… 3+37+12345678987654281=12345678987654321 耗时12.457630634307861s Process finished with exit code 0
    Processed: 0.011, SQL: 12