31 lines
431 B
Ruby
31 lines
431 B
Ruby
|
class Integer
|
||
|
def divisors
|
||
|
divisors = []
|
||
|
(1..Math.sqrt(self).to_i).each do |num|
|
||
|
if self % num == 0
|
||
|
divisors << num
|
||
|
divisors << self / num
|
||
|
end
|
||
|
end
|
||
|
divisors
|
||
|
end
|
||
|
end
|
||
|
|
||
|
triangle = Enumerator.new do |y|
|
||
|
sum = 1
|
||
|
next_num = 2
|
||
|
loop do
|
||
|
y << sum
|
||
|
sum += next_num
|
||
|
next_num += 1
|
||
|
end
|
||
|
end
|
||
|
|
||
|
val = triangle.next
|
||
|
|
||
|
while val.divisors.count < 500
|
||
|
val = triangle.next
|
||
|
end
|
||
|
|
||
|
puts val
|