primes = {x for x in range(2, 101) if all(x%y for y in range(2, min(x, 11)))}我简化了测试-
if all(x%y而不是
if not any(not x%y
我也限制了你的范围。测试除数> sqrt(x)没有意义。因此max(x)== 100意味着max(y)==10。对于x <= 10,y也必须小于x。
pairs = {(x, x+2) for x in primes if x+2 in primes}无需生成一对素数并对其进行测试,而是获得一个素数并查看是否存在相应的较高素数。



