| 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 97True>>>isPrime ls 100False>>>isPrime ls 0False>>>isPrime ls 1False>>>isPrime ls 2True
primeCountUpperBound :: Int -> Int Source #
>>>primeCountUpperBound 10032>>>primeCountUpperBound (10 ^ 6)100000