Problem 50

100,000での最長が183であることを利用して探索範囲を狭くした。

これを動的にやるとカッコいいわけだが、めんどくさい。

import Number
import Data.List
import Data.Ord
lim = 1000000
consectFrom n = last.filter(isPrime.snd).zip [1..].takeWhile(<lim)$adds
where adds =scanl1 (+).takeWhile(<(lim-n)).dropWhile(<n)$primes
p050 =maximumBy(comparing fst). map consectFrom .takeWhile(<(lim`div`183))$primes
main = print p050
More Reading
Newer// Problem 49
Older// Problem 51