13 lines
436 B
Haskell
13 lines
436 B
Haskell
import Data.List (group, sort)
|
|
import Text.Printf (printf)
|
|
import Data.Numbers.Primes (primes)
|
|
|
|
freq :: [(Int, Int)] -> Float
|
|
freq xs = realToFrac (length xs) / 100
|
|
|
|
line :: [(Int, Int)] -> IO ()
|
|
line t@((n1, n2):xs) = printf "%d -> %d count: %5d frequency: %2.2f %%\n" n1 n2 (length t) (freq t)
|
|
|
|
main :: IO ()
|
|
main = mapM_ line $ groups primes
|
|
where groups = tail . group . sort . (\n -> zip (0: n) n) . fmap (`mod` 10) . take 10000
|