iota-0.1.0.0
Safe HaskellNone
LanguageGHC2021

Math.Prime.LinearSieve

Synopsis

Documentation

data LinearSieve Source #

Constructors

LinearSieve 

Fields

buildLinearSieve :: Int -> LinearSieve Source #

O(N) >>> primes $ buildLinearSieve 32 [2,3,5,7,11,13,17,19,23,29,31]

primeFactors :: LinearSieve -> Int -> [Int] Source #

>>> ls = buildLinearSieve 100
>>> primeFactors ls 60
[2,2,3,5]
>>> primeFactors ls 0
[]
>>> primeFactors ls 1
[]
>>> primeFactors ls 2
[2]
>>> primeFactors ls 4
[2,2]

isPrime :: LinearSieve -> Int -> Bool Source #

>>> ls = buildLinearSieve 100
>>> isPrime ls 97
True
>>> isPrime ls 100
False
>>> isPrime ls 0
False
>>> isPrime ls 1
False
>>> isPrime ls 2
True

primeCountUpperBound :: Int -> Int Source #

>>> primeCountUpperBound 100
32
>>> primeCountUpperBound (10 ^ 6)
100000