Pythonでゴールドバッハ予測の計算をする

Pythonで1000までの正の整数についてゴールドバッハ予想の検証をしてみました。ゴールドバッハ予想は次のことをいいます。

4以上の全ての偶数は、二つの素数の和で表すことができる。
6以上の全ての偶数は、二つの奇素数の和で表すことができる。

現在、$4 × 10^18$までは正しいことが確認されていますが、その証明については未解決といわれています。そこで、とりあえず1000まで確認してみたいと思います。

まず、1000までの奇素数のリストを作成します。

#奇数の素数のリストを作成
max = 1002
odd_prime = []
for i in range (3,max+1,2):
    for j in range(3, i):
        if i % j ==0:
            break
    else:
        odd_prime.append(i)
print(odd_prime,len(odd_prime))
[3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997] 

次に、1から1000までの組合せを計算してみます。

for num in range(6,1001,2):
    print(num)
    i=0
    while odd_prime[i]<num:
        if (num-odd_prime[i]) in odd_prime:
            print('(',odd_prime[i],',',num-odd_prime[i],')',end='')
        i+=1
    print('')    
998
( 7 , 991 )( 31 , 967 )( 61 , 937 )( 79 , 919 )( 139 , 859 )( 211 , 787 )( 229 , 769 )( 241 , 757 )( 271 , 727 )( 307 , 691 )( 337 , 661 )( 367 , 631 )( 379 , 619 )( 397 , 601 )( 421 , 577 )( 457 , 541 )( 499 , 499 )( 541 , 457 )( 577 , 421 )( 601 , 397 )( 619 , 379 )( 631 , 367 )( 661 , 337 )( 691 , 307 )( 727 , 271 )( 757 , 241 )( 769 , 229 )( 787 , 211 )( 859 , 139 )( 919 , 79 )( 937 , 61 )( 967 , 31 )( 991 , 7 )
1000
( 3 , 997 )( 17 , 983 )( 23 , 977 )( 29 , 971 )( 47 , 953 )( 53 , 947 )( 59 , 941 )( 71 , 929 )( 89 , 911 )( 113 , 887 )( 137 , 863 )( 173 , 827 )( 179 , 821 )( 191 , 809 )( 227 , 773 )( 239 , 761 )( 257 , 743 )( 281 , 719 )( 317 , 683 )( 347 , 653 )( 353 , 647 )( 359 , 641 )( 383 , 617 )( 401 , 599 )( 431 , 569 )( 443 , 557 )( 479 , 521 )( 491 , 509 )( 509 , 491 )( 521 , 479 )( 557 , 443 )( 569 , 431 )( 599 , 401 )( 617 , 383 )( 641 , 359 )( 647 , 353 )( 653 , 347 )( 683 , 317 )( 719 , 281 )( 743 , 257 )( 761 , 239 )( 773 , 227 )( 809 , 191 )( 821 , 179 )( 827 , 173 )( 863 , 137 )( 887 , 113 )( 911 , 89 )( 929 , 71 )( 941 , 59 )( 947 , 53 )( 953 , 47 )( 971 , 29 )( 977 , 23 )( 983 , 17 )( 997 , 3 )

全部書くと大変なので、998と1000について計算しました。とりあえず1000までは確認できました。

この記事を書いた人

目次
閉じる