26 lines
624 B
FSharp
26 lines
624 B
FSharp
module _35
|
|
|
|
open common
|
|
|
|
let circularPrime =
|
|
let rotations (s:string) =
|
|
let len = s.Length
|
|
seq {
|
|
for n in 0..(len - 1) do
|
|
yield s.Substring(len - n)
|
|
+ s.Substring(0, len - n)
|
|
} |> Seq.toList
|
|
|
|
let oddOr2 i = i % 2 = 1 || i = 2
|
|
|
|
let pa =
|
|
primeArray 1000000
|
|
|> Array.filter (numDigits >> (Array.forall oddOr2))
|
|
|> Array.map (string)
|
|
|
|
let isPrime = isPrimeFunByArray pa
|
|
pa
|
|
|> Array.map rotations
|
|
|> Array.filter (List.forall isPrime)
|
|
|> Array.map (Seq.nth 0)
|
|
|> Array.length |