1

我正在学习 SageMath(使用 Python 3)并玩 Goldbach 猜想。

我写了这个函数(它有效!):

def Goldbach(n):
    if n % 2 != 0 or n <= 2:
        show("No és parell")
    else:
        for i in srange(n):
            if is_prime(i):
                for j in srange(n):
                    if is_prime(j) and i + j == n:                        
                        a = [i, j]
                        show(a)
    return

现在我正在尝试(不知道)做以下情节:

r(2k)的哥德巴赫分区数表示2k,猜想肯定r(2k) > 0如果k > 1.

我必须做一个点图(k, r(2k))k > 2。我怎么能做到?

4

1 回答 1

2

首先,让我们在Sage中更好地实现例程计算p + q = 2kpq素数解 的数量r(K)(对于K > 2一些偶数整数) 。

当解决方案(p, q)(q, p)不同时,我们计算它们。

def r(K):
    if K not in ZZ or K <= 2 or K % 2:
        return None
    if K == 4:
        return 1
    count = 0
    for p in primes(3, K):
        for q in primes(3, K + 1 - p):
            if p + q == K:
                count += 1
    return count

goldbach_points = [(K, r(K)) for K in range(4, 100,2)]
show(points(goldbach_points))

这给出了:

哥德巴赫点图。

于 2021-01-05T14:45:43.973 回答