Kind of a variation on Problem 35. I was surprised by how fast it ran!
let problem37a = let isTruncatablePrime n = if n |> isPrime |> not then false else let digs = n |> Digits.fromInt let truncations = seq { for i in 1..(Seq.length digs)-1 -> digs |> Seq.take i |> Digits.toInt for i in 1..(Seq.length digs)-1 -> digs |> Seq.skip i |> Digits.toInt } Seq.forall isPrime truncations let rec odds n = seq {yield n; yield! odds (n+2)} odds 11 //skip the single digit primes |> Seq.filter isTruncatablePrime |> Seq.take 11 //we are given there are only 11 |> Seq.sum
No comments:
Post a Comment