Problem 50
The prime 41, can be written as the sum of six consecutive primes:
This is the longest sum of consecutive primes that adds to a prime below one-hundred.
The longest sum of consecutive primes below one-thousand that adds to a prime, contains 21 terms, and is equal to 953.
Which prime, below one-million, can be written as the sum of the most consecutive primes?
素数41可以写成六个连续素数的和:
在小于一百的素数中,41能够被写成最多的连续素数的和。
在小于一千的素数中,953能够被写成最多的连续素数的和,共包含连续21个素数。
在小于一百万的素数中,哪个素数能够被写成最多的连续素数的和?
def isprime(n):
if n < 2:
return False
for x in range(2, int(n**0.5 + 1)):
if n % x == 0:
return False
return True
def primes(n):
return [x for x in range(n) if isprime(x)]
count = 21
primes = primes(10000)
for i in range(len(primes)):
if count + i > len(primes):
break
while count < len(primes) - i:
sum1 = sum(primes[i: i + count + 1])
if isprime(sum1) and sum1 < 1000000:
new = count
print(new, sum1)
count += 1
count = new
print(count)