Safe Haskell | None |
---|---|
Language | GHC2021 |
Math.Prime.LinearSieve
Synopsis
- data LinearSieve = LinearSieve {
- leastPrimeFactor :: !(Vector Int)
- primes :: !(Vector Int)
- buildLinearSieve :: Int -> LinearSieve
- primeFactors :: LinearSieve -> Int -> [Int]
- isPrime :: LinearSieve -> Int -> Bool
- primeCountUpperBound :: Int -> Int
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