mirror of
https://github.com/cubixle/codekata-golang.git
synced 2026-04-24 18:34:42 +01:00
50: consecutive prime sum
This commit is contained in:
41
50_consecutive_prime_sum/main.go
Normal file
41
50_consecutive_prime_sum/main.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
solution()
|
||||
}
|
||||
|
||||
func solution() {
|
||||
limit := 1000000
|
||||
notPrime := make([]int, limit)
|
||||
var primes []int
|
||||
notPrime[0] = 1
|
||||
notPrime[1] = 1
|
||||
|
||||
for i := 2; i < limit; i++ {
|
||||
if notPrime[i] == 0 {
|
||||
primes = append(primes, i)
|
||||
for j := i * i; j < limit; j += i {
|
||||
notPrime[j] = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
maxSum := 0
|
||||
maxRun := -1
|
||||
for i := 0; i < len(primes); i++ {
|
||||
sum := 0
|
||||
for j := i; j < len(primes); j++ {
|
||||
sum += primes[j]
|
||||
if sum >= limit {
|
||||
break
|
||||
}
|
||||
if notPrime[sum] == 0 && sum > maxSum && j-i > maxRun {
|
||||
maxRun = j - i
|
||||
maxSum = sum
|
||||
}
|
||||
}
|
||||
}
|
||||
fmt.Println("max sum:", maxSum)
|
||||
}
|
||||
Reference in New Issue
Block a user