Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 2nd, 2012  |  syntax: F#  |  size: 0.70 KB  |  hits: 35  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. let bValues =
  2.    seq { 1..999 }
  3.    |> Seq.filter(fun u -> isPrime (int64 u))
  4.  
  5. let a,b,len =
  6.    seq { -999..999 }
  7.    |> Seq.filter(fun u ->bValues |> Seq.exists(fun k -> isPrime(int64 (1 + u + k))))
  8.    |> Seq.fold(fun acc a ->
  9.         bValues      
  10.         |> Seq.filter(fun k -> isPrime(int64 (1 + a + k)))
  11.         |> Seq.map(fun k -> (a,k))
  12.         |> Seq.append acc
  13.      ) Seq.empty
  14.    |> Seq.map (fun (a,b) ->
  15.         let len =
  16.            Seq.initInfinite(fun n -> (n*n) + (a*n) + b)
  17.            |> Seq.takeWhile(fun k -> isPrime (int64 k))
  18.            |> Seq.length
  19.         (a,b,len)
  20.      )
  21.    |> Seq.maxBy(fun (a,b,len) -> len)
  22.  
  23. printfn "%d %d -> length: %d;  a*b = %d" a b len (a*b)