素数 41 可以写成六个连续素数之和:
41 = 2 + 3 + 5 + 7 + 11 + 13
这是添加到低于 100 的素数的最长的连续素数之和。
加到一个素数上的小于一千的连续素数的最长和包含 21 项,等于 953。
100 万以下的哪个素数可以写成最连续素数之和?
这是我的代码:
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。