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}}==