哥德巴赫猜想說是說,任何一個超過 2 的偶數都可以寫成兩個素數之和,例如,4=2+2,8=5+3 等

本例要求根據用戶輸入的偶數找出其素數和的分解形式

i =  int(input("請輸入大於2的偶數:"))
value = 0
l = []
if i >2 and i%2 ==0:
    for j in range(2,i+1):
        for k in range(2,j):
            if j%k == 0:
                break
        else:
            l.append(j)
    for k in range(len(l)):
        for f in range(len(l)):
            value = l[k] +l[f]
            if i == value:
                if l[k] <= l[f]:     #爲了去除重複,例如:8=3+5 8=5+3
                    print(i,"=",l[k],"+",l[f])
else:
    print("輸入的數值不符合要求")

#
# 劉:
def main():
    # 輸入待驗證的偶數
    N = int(input("請輸入待驗證的偶數:"))
    while N < 3 or N % 2 == 1:
        print("輸入的數不符合要求")
        N = int(input("請輸入待驗證的偶數n(n>2):"))
    # 生成素數表
    Prime = set()
    for i in range(2, N + 1):
        Prime.add(i)
    for i in range(2, N + 1):
        if i in Prime:
            for k in range(2 * i, N + 1, i):
                if k in Prime:
                    Prime.remove(k)
    # 驗證該偶數能否分解爲兩個素數之和
    for e in Prime:
        f = N - e
        if f >= e and f in Prime:
            print(N, '=', e, '+', f)


main()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章