Anonymous user
Perfect numbers: Difference between revisions
→{{header|Ruby}}
(Updated second D entry) |
|||
Line 1,454:
=={{header|Ruby}}==
<lang ruby>def perf(n)
sum += i if n % i == 0
sum ==
▲ end
end</lang>
Functional style:
<lang ruby>def perf(n)
end</lang>
Faster version:
<lang ruby>def perf(n)
divisors = []
for i in 1..Math.sqrt(n)
divisors << i << n/i if n % i == 0
end
divisors.uniq.inject(:+) == 2*n
end</lang>
Test:
<lang ruby>for n in 1..10000
puts n if perf(n)
end</lang>
{{out}}
<pre>
6
28
496
8128
</pre>
=={{header|Run BASIC}}==
|