Anonymous user
Sexy primes: Difference between revisions
m
→{{header|Haskell}}: optimized algorithm and formatted output
(→{{header|Haskell}}: clarity) |
m (→{{header|Haskell}}: optimized algorithm and formatted output) |
||
Line 685:
<lang haskell>
import Data.Maybe
import Text.Printf
import Data.Numbers.Primes
Line 709 ⟶ 710:
searchPairs [] = ([], [])
searchPairs p@(x:xs) = case findPairs x p of
(Just ps) -> (ps : y,
Nothing -> (y, x : z)
where (y, z) = searchPairs xs
filterSecond ps' = if snd ps' `elem` z
then filter (/= snd ps') z
else z
main :: IO ()
main = do
let ps = takeWhile (< 1000035) primes
let (pairs,
let triples = catMaybes $ map (findTriplets ps) pairs
let quads = catMaybes $ map (findQuadruplets ps) triples
let quins = catMaybes $ map (findQuinTuplets ps) quads
where lastFive = reverse . take 5 . reverse
lastTen = reverse . take 10 . tail . reverse
asList = snd . unzip
lastFiveText = " Last 5 : %s\n\n"
</lang>
{{out}}
<pre>
Number of sexy prime pairs: 16386
Last 5 : [(999371,999377),(999431,999437),(999721,999727),(999763,999769),(999953,999959)]
Number of sexy prime triplets: 2900
Last 5 : [(997427,997433,997439),(997541,997547,997553),(998071,998077,998083),(998617,998623,998629),(998737,998743,998749)]
Number of sexy prime quadruplets: 325
Last 5 : [(977351,977357,977363,977369),(983771,983777,983783,983789),(986131,986137,986143,986149),(990371,990377,990383,990389),(997091,997097,997103,997109)]
Number of sexy prime quintuplets: 1
Last 1 : [(5,11,17,23,29)]
Number of unsexy primes: 48628
Last 10 unsexy primes: [999853,999863,999883,999907,999917,999931,999961,999979,999983,1000003]
</pre>
|