Anonymous user
Sexy primes: Difference between revisions
m
→{{header|Haskell}}
m (→{{header|Haskell}}: second example with a single fold) |
|||
Line 708:
import Data.Numbers.Primes (isPrime, primes)
data Result = Result [(Int, Int)] [(Int, Int, Int)] [(Int, Int, Int, Int)] [(Int, Int, Int, Int, Int)] [Int]
groups :: Int -> Result -> Result
groups a r@(Result p t q qn u)
| isPrime (a-24) && isPrime (a-18) && isPrime (a-12) && isPrime (a-6) = Result asPair asTriplet asQuad asQuin u
| isPrime (a-18) && isPrime (a-12) && isPrime (a-6) = Result asPair asTriplet asQuad qn u
| isPrime (a-12) && isPrime (a-6) = Result asPair asTriplet q qn u
| isPrime (a-6) = Result asPair t q qn u
| (not $ isPrime (a+6)) && (not $ isPrime (a-6)) = Result p t q qn (a : u)
| otherwise = r
where asPair = (a-6, a) : p
Line 730 ⟶ 731:
printf "Number of unsexy primes: %d\n Last 10: %s\n\n" (length unsexy) (show $ drop (length unsexy - 10) unsexy)
where d = takeWhile (< 1000035) primes
lastFive xs = show $ drop (length xs - 5) xs
lastFiveText = " Last 5 : %s\n\n"
|