fork download
  1. open System // from stackoverflow.com/q/49219103/849891
  2. // by stackoverflow.com/users/1462221/patrick-stevens
  3.  
  4. let sieveOutPrime p numbers =
  5. numbers
  6. |> Seq.filter (fun n -> n % p <> 0)
  7.  
  8. let primesLessThan n =
  9. let removeFirstPrime = function
  10. | s when Seq.isEmpty s -> None
  11. | s -> Some(Seq.head s, sieveOutPrime (Seq.head s) (Seq.tail s))
  12.  
  13. let remainingPrimes =
  14. seq {3..2..n}
  15. |> Seq.unfold removeFirstPrime
  16.  
  17. seq { yield 2; yield! remainingPrimes }
  18.  
  19. primesLessThan 1000000 |> Seq.skip 700
  20. |> Seq.take 10
  21. |> Seq.iter( fun n -> printf "%d " n )
Success #stdin #stdout 11.14s 25908KB
stdin
Standard input is empty
stdout
5281 5297 5303 5309 5323 5333 5347 5351 5381 5387