Factors of an integer: Difference between revisions

Content added Content deleted
(→‎{{Header|Haskell}}: List comprehension)
(→‎List comprehension: Factor, cofactor. Rearrange a list of tuples to a sorted list)
Line 1,027: Line 1,027:
=== List comprehension ===
=== List comprehension ===
Naive, functional, no import
Naive, functional, no import
<lang Haskell>factors n = [i | i <-[1..n], (mod n i) == 0]</lang>
<lang Haskell>factors_naive n = [i | i <-[1..n], (mod n i) == 0]</lang>
<lang Haskell>factors 6
<lang Haskell>factors_naive 6
[1,2,3,6]
</lang>

Factor, cofactor. Rearrange a list of tuples to a sorted list
<lang Haskell>import Data.List
tuple_to_list lt = (fst lt) ++ (snd lt)
factors_co n = sort (tuple_to_list(unzip
[ (j, (div n j)) | j <-
[i | i <-
[1..truncate (sqrt (fromIntegral n))]
, (mod n i) == 0]] ))
</lang>
<lang Haskell>factors_co 6
[1,2,3,6]
[1,2,3,6]
</lang>
</lang>