0
点赞
收藏
分享

微信扫一扫

哥德巴赫猜想 goldbach

酷子腿长一米八 2022-03-17 阅读 60
算法

任何大于2的偶数都可以写成两个素数之和,任何大于7的奇数都可以写成3个奇素数之和。

即:

任何大于2的偶数=素数+素数

任何大于7的奇数=奇素数+奇素数+奇素数

ps:素数=质数=在正整数范围内,只能被1和自身整除的数。

def is_prime(x):				#检测一个数是否是素数
	for i in range(2,x):
		if x%i==0:
			return False
	return True

def goldbach(x):
	if x%2==0 and x>2:			#任何大于2的偶数=素数+素数
		for i in range(2,x):
			if is_prime(i) and is_prime(x-i):
				return(f'{x}={i}+{x-i}')
	elif x%2==1 and x>7:		#任何大于7的奇数=奇素数+奇素数+奇素数
		for i in range(3,x,2):
			for j in range(3,x-i,2):
				if is_prime(i) and is_prime(j) and is_prime(x-i-j):
					return(f'{x}={i}+{j}+{x-i-j}')
	else:
		return('输入错误,请输入大于2的偶数,或者大于7 的奇数')

print(goldbach(36))
print(goldbach(4))
print(goldbach(361))
print(goldbach(9))
举报

相关推荐

0 条评论