素数41,可以写成六个连续素数的总和:
41 = 2 + 3 + 5 + 7 + 11 + 13
这是连续素数的最长和,它加到了低于一百的素数。
连续素数低于一千的最长和,加上素数,包含21个项,等于953。
哪个素数低于一百万,可以写成最连续素数的总和?
这是我的代码:
SieveOfE <- function(n) {
primes <- rep(TRUE, n)
primes[1] <- FALSE
last.prime <- 2
while (last.prime <= sqrt(n)) {
primes[seq.int(2*last.prime, n, last.prime)] <- FALSE
last.prime <- last.prime + min(which(primes[(last.prime + 1) : n]))
}
which(primes)
}
primes <- SieveOfE(3940)
primes <- as.numeric(primes)
ans <- 0
length <- 0
for (i in 1:length(primes)) {
for (j in length(primes):i) {
if ((sum(primes[i:j]) %in% primes) && (j - i > length)) {
length <- j - i
ans <- sum(primes[i:j])
}
}
}
ans
即使我知道它在900000+范围内,我仍然会得到3821的答案。