Factors of an integer: Difference between revisions
Content added Content deleted
(→{{header|Kotlin}}: Updated example see https://github.com/dkandalov/rosettacode-kotlin for details) |
|||
Line 3,629: | Line 3,629: | ||
53 : [1, 53] |
53 : [1, 53] |
||
64 : [1, 2, 4, 8, 16, 32, 64]</pre> |
64 : [1, 2, 4, 8, 16, 32, 64]</pre> |
||
===Using the prime library=== |
|||
<lang ruby> |
|||
require 'prime' |
|||
def factors m |
|||
return [1] if 1==m |
|||
primes, powers = Prime.prime_division(m).transpose |
|||
ranges = powers.map{|n| (0..n).to_a} |
|||
ranges[0].product( *ranges[1..-1] ). |
|||
map{|es| primes.zip(es).map{|p,e| p**e}.reduce :*}. |
|||
sort |
|||
end |
|||
[1, 7, 45, 100].each{|n| p factors n} |
|||
</lang> |
|||
Output: |
|||
<pre> |
|||
[1] |
|||
[1, 7] |
|||
[1, 3, 5, 9, 15, 45] |
|||
[1, 2, 4, 5, 10, 20, 25, 50, 100] |
|||
</pre> |
|||
=={{header|Run BASIC}}== |
=={{header|Run BASIC}}== |