Product of min and max prime factors: Difference between revisions
Content added Content deleted
m (→{{header|AppleScript}}: Dedicated primeFactors handler. Multiplications moved to task code.) |
m (→{{header|Haskell}}: Tidied) |
||
Line 734: | Line 734: | ||
=={{header|Haskell}}== |
=={{header|Haskell}}== |
||
<syntaxhighlight lang=haskell>import Data.List |
<syntaxhighlight lang=haskell>import Data.List (intercalate, transpose) |
||
import Data.List.Split (chunksOf) |
|||
import Data.Numbers.Primes (primeFactors) |
import Data.Numbers.Primes (primeFactors) |
||
import Text.Printf (printf) |
|||
----------- PRODUCT OF MIN AND MAX PRIME FACTORS --------- |
|||
f = ((*) . head <*> last) . primeFactors |
|||
--------------------------- TEST ------------------------- |
|||
main :: IO () |
main :: IO () |
||
main = |
main = |
||
putStrLn $ |
|||
table " " $ (chunksOf 10 . take 100) $ fmap show $ |
|||
1 : (((*) . minimum <*> maximum) . primeFactors <$> [2 ..])</syntaxhighlight> |
|||
1 : (f <$> [2 ..]) |
|||
------------------------- DISPLAY ------------------------ |
|||
table :: String -> [[String]] -> String |
|||
table gap rows = |
|||
let ws = maximum . fmap length <$> transpose rows |
|||
pw = printf . flip intercalate ["%", "s"] . show |
|||
in unlines $ intercalate gap . zipWith pw ws <$> rows</syntaxhighlight> |
|||
{{Out}} |
{{Out}} |
||
<pre> |
<pre> 1 4 9 4 25 6 49 4 9 10 |
||
121 6 169 14 15 4 289 6 361 10 |
|||
21 22 529 6 25 26 9 14 841 10 |
|||
961 4 33 34 35 6 1369 38 39 10 |
|||
1681 14 1849 22 15 46 2209 6 49 10 |
|||
51 26 2809 6 55 14 57 58 3481 10 |
|||
3721 62 21 4 65 22 4489 34 69 14 |
|||
5041 6 5329 74 15 38 77 26 6241 10 |
|||
9 82 6889 14 85 86 87 22 7921 10 |
|||
91 46 93 94 95 6 9409 14 33 10</pre> |
|||
=={{header|J}}== |
=={{header|J}}== |