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.)
Line 734: Line 734:


=={{header|Haskell}}==
=={{header|Haskell}}==
<syntaxhighlight lang=haskell>import Data.List.Split (chunksOf)
<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 $
(mapM_ print . chunksOf 10 . take 100) $
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>[1,4,9,4,25,6,49,4,9,10]
<pre> 1 4 9 4 25 6 49 4 9 10
[121,6,169,14,15,4,289,6,361,10]
121 6 169 14 15 4 289 6 361 10
[21,22,529,6,25,26,9,14,841,10]
21 22 529 6 25 26 9 14 841 10
[961,4,33,34,35,6,1369,38,39,10]
961 4 33 34 35 6 1369 38 39 10
[1681,14,1849,22,15,46,2209,6,49,10]
1681 14 1849 22 15 46 2209 6 49 10
[51,26,2809,6,55,14,57,58,3481,10]
51 26 2809 6 55 14 57 58 3481 10
[3721,62,21,4,65,22,4489,34,69,14]
3721 62 21 4 65 22 4489 34 69 14
[5041,6,5329,74,15,38,77,26,6241,10]
5041 6 5329 74 15 38 77 26 6241 10
[9,82,6889,14,85,86,87,22,7921,10]
9 82 6889 14 85 86 87 22 7921 10
[91,46,93,94,95,6,9409,14,33,10]</pre>
91 46 93 94 95 6 9409 14 33 10</pre>


=={{header|J}}==
=={{header|J}}==