哥德巴赫猜想:任一大于2的偶数都可写成两个质数之和。
质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
1. 首先验证是否为素数。 (若是素数返回True; 否则返回False)
def prime_number(N):
count = 0
for i in range(2, N):
if N % i == 0:
count += 1
if count == 0:
return True
else:
return False
2. 当作练手, 传入你想知道的0到N的范围内有几个素数, 且都是哪些素数。
def all_prime_numbers(N):
count = 0
for i in range(2, N + 1):
if prime_number(i):
count += 1
print(i, end="\t")
print()
print(f"一共有{count}个素数")
3. 哥德巴赫猜想。
def goldbach_conjecture(N):
if N % 2 == 0 and N > 2:
for i in range(2, N + 1):
for j in range(i, N + 1):
if prime_number(i) == True and prime_number(j) == True and i + j == N:
print(f"{i} + {j} = {N}")
else:
print("请输入大于2的偶数!")
4. 方便读者获取代码。
# 哥德巴赫猜想:任一大于2的偶数都可写成两个质数之和
# 质数:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
def prime_number(N):
count = 0
for i in range(2, N):
if N % i == 0:
count += 1
if count == 0:
return True
else:
return False
def all_prime_numbers(N):
count = 0
for i in range(2, N + 1):
if prime_number(i):
count += 1
print(i, end="\t")
print()
print(f"一共有{count}个素数")
def goldbach_conjecture(N):
if N % 2 == 0 and N > 2:
for i in range(2, N + 1):
for j in range(i, N + 1):
if prime_number(i) == True and prime_number(j) == True and i + j == N:
print(f"{i} + {j} = {N}")
else:
print("请输入大于2的偶数!")
if __name__ == "__main__":
N = int(input("请输入大于2的偶数:"))
goldbach_conjecture(N)
当输入N为100时候: