哥德巴赫猜想中寫到,一個充分大的偶數(大于等于4),它可以分解為兩個素數(質數)的和
第一步:先定義一個判斷質數的函式
質數:是指在大于1的自然數中,除了1和它本身以外不再有其他因數的自然數,
我們可以讓他從2開始一直除到自身-1為止,如果可以被整除,那就是非質數
補充:小知識點,因為給一個數開方之后 √m*(√m+1)>m 所以除到它的開方數為止就行了,
Python中n**0.5兩個*號表示冪函式,0.5是開方,
def isPrimeNumber(n):
k=int(n**0.5)
for i in range(2,k):
if n%i==0:
return False
return True
驗證:選出100以內的質數
for i in range(100):
if isPrimeNumber(i):
print(i)
結果:
0
1
2
3
4
5
6
7
8
9
11
13
15
17
19
23
25
29
31
35
37
41
43
47
49
53
59
61
67
71
73
79
83
89
97
第二步:偶數拆開成兩個奇數,
這里不除以2,會造成j和k首尾對應的情況,

def guess(n):
if n%2 != 0:
print("不是偶數")
Return
for i in range(int(n/2)):
j=i
k=n-j
第三步:判斷兩個數同時是質數,并記錄
def guess(n):
if n%2 != 0:
print("不是偶數")
return
for i in range(int(n/2)):
j=2*i+1
k=n-j
if (isPrimeNumber(j) and isPrimeNumber(k)):
print('%d+%d=%d'%(j,k,n))
第四步:驗證100有多少種加法
guess(100)
結果:
3+97=100
11+89=100
17+83=100
29+71=100
41+59=100
47+53=100
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/301086.html
標籤:其他
