Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,27 @@
|
|||
import Data.List
|
||||
import Control.Monad (guard)
|
||||
|
||||
isPrime :: Int -> Bool
|
||||
isPrime n
|
||||
| n <= 3 = n > 1
|
||||
| n `mod` 2 == 0 || n `mod` 3 == 0 = False
|
||||
| otherwise = l2 5 n
|
||||
where l2 d n = x > n || l3 d n
|
||||
where x = d * d
|
||||
l3 d n
|
||||
| n `mod` d == 0 = False
|
||||
| n `mod` (d + 2) == 0 = False
|
||||
| otherwise = l2 (d + 6) n
|
||||
|
||||
showPrime :: Int -> Int -> [(Int, Int)]
|
||||
showPrime i n = if isPrime i
|
||||
then (n, i) : showPrime (i+i) (n+1)
|
||||
else showPrime (i+1) n
|
||||
|
||||
digitGroup :: Int -> String
|
||||
digitGroup = intercalate "," . reverse . map show . unfoldr (\n -> guard (n /= 0) >> pure (n `mod` 1000, n `div` 1000))
|
||||
|
||||
display :: (Int, Int) -> String
|
||||
display (i, p) = show i ++ " " ++ digitGroup p
|
||||
|
||||
main = mapM_ (putStrLn . display) $ take 42 $ showPrime 42 1
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
import Data.Numbers.Primes
|
||||
import Data.List (intercalate)
|
||||
import Data.List.Split (chunksOf)
|
||||
|
||||
series :: Integer -> Integer -> [(Integer, Integer)]
|
||||
series = go
|
||||
where
|
||||
go i n
|
||||
| isPrime i = (n, i) : go (i + i) (succ n)
|
||||
| otherwise = go (succ i) n
|
||||
|
||||
showPair :: (Integer, Integer) -> String
|
||||
showPair (i, n) = show i ++ " -> " ++ showInteger n
|
||||
|
||||
showInteger :: Integer -> String
|
||||
showInteger = reverse . intercalate "," . chunksOf 3 . reverse . show
|
||||
|
||||
main :: IO ()
|
||||
main = mapM_ (putStrLn . showPair) (take 42 $ series 42 1)
|
||||
Loading…
Add table
Add a link
Reference in a new issue