Skip to content

Instantly share code, notes, and snippets.

sieve :: ([Int], [Int]) -> ([Int], [Int])
sieve p=if (null (snd p))
then p
else sieve ( fst p ++ [ head $ snd p ]
, filter (\n -> (/=0) $ mod n $ head $ snd p ) $ tail $ snd p )
sieven :: Int -> [Int]
sieven n = fst $ sieve ([2], [3,5..n])