Project Euler 46

本文介绍了一种通过Python实现的简单方法来寻找特定范围内的素数,并验证某些奇数合数是否可以表示为素数与两个平方数之和的形式。通过对一系列数值进行遍历与判断,展示了如何有效地解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

比较简单的题,在python的大电锯下,更简单了……

暴力枚举~没细想什么好办法……


def sss(n):
	a = [1 for i in range(n)]
	a[0], a[1], a[2] = 0, 0, 1
	pl = []
	t = s = 0
	for i in range(2,n):
		if a[i]:
			s+=i
			pl.append(i)
			j=i*i
			t+=1
			while j<n:
				a[j]=0
				j+=i
	return pl
def main():
	prime = sss(100000)
	twice_a_square = [2*i*i for i in range(1, 100)]
	for i in range(17, 100000):
		odd_composite = 2*i+1
		t = 0
		if not odd_composite in prime:
			for j in prime:
				if j>odd_composite:
					break
				x = odd_composite - j
				if x in twice_a_square:
					t = 1
					break
			if not t:
				print(odd_composite)
				return 0


if __name__ == '__main__':
	main()



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值