3 people like it.
Like the snippet!
Prime numbers - Sieve of Eratosthenes
Basic prime number generator
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
open System
open System.Collections
let primes max =
let array = new BitArray(max, true);
let lastp = Math.Sqrt(float max) |> int
for p in 2..lastp+1 do
if array.Get(p) then
for pm in p*2..p..max-1 do
array.Set(pm, false);
seq { for i in 2..max-1 do if array.Get(i) then yield i }
|
namespace System
namespace System.Collections
val primes : max:int -> seq<int>
Full name: Script.primes
val max : int
Multiple items
val array : BitArray
--------------------
type 'T array = 'T []
Full name: Microsoft.FSharp.Core.array<_>
Multiple items
type BitArray =
new : length:int -> BitArray + 5 overloads
member And : value:BitArray -> BitArray
member Clone : unit -> obj
member CopyTo : array:Array * index:int -> unit
member Count : int
member Get : index:int -> bool
member GetEnumerator : unit -> IEnumerator
member IsReadOnly : bool
member IsSynchronized : bool
member Item : int -> bool with get, set
...
Full name: System.Collections.BitArray
--------------------
BitArray(length: int) : unit
BitArray(bytes: byte []) : unit
BitArray(values: bool []) : unit
BitArray(values: int []) : unit
BitArray(bits: BitArray) : unit
BitArray(length: int, defaultValue: bool) : unit
val lastp : int
type Math =
static val PI : float
static val E : float
static member Abs : value:sbyte -> sbyte + 6 overloads
static member Acos : d:float -> float
static member Asin : d:float -> float
static member Atan : d:float -> float
static member Atan2 : y:float * x:float -> float
static member BigMul : a:int * b:int -> int64
static member Ceiling : d:decimal -> decimal + 1 overload
static member Cos : d:float -> float
...
Full name: System.Math
Math.Sqrt(d: float) : float
Multiple items
val float : value:'T -> float (requires member op_Explicit)
Full name: Microsoft.FSharp.Core.Operators.float
--------------------
type float = Double
Full name: Microsoft.FSharp.Core.float
--------------------
type float<'Measure> = float
Full name: Microsoft.FSharp.Core.float<_>
Multiple items
val int : value:'T -> int (requires member op_Explicit)
Full name: Microsoft.FSharp.Core.Operators.int
--------------------
type int = int32
Full name: Microsoft.FSharp.Core.int
--------------------
type int<'Measure> = int
Full name: Microsoft.FSharp.Core.int<_>
val p : int32
BitArray.Get(index: int) : bool
val pm : int32
BitArray.Set(index: int, value: bool) : unit
Multiple items
val seq : sequence:seq<'T> -> seq<'T>
Full name: Microsoft.FSharp.Core.Operators.seq
--------------------
type seq<'T> = Generic.IEnumerable<'T>
Full name: Microsoft.FSharp.Collections.seq<_>
val i : int
More information