n=2 k=0 k1=0 k2=0 p=true record=0 #number of divisors: d=500 puts "Time started #{Time.now} looking for first triangle number with at least #{d} divisors" while p==true do i=1 triangle_n = n*(n+1)/2 k=1 while i<= n/2 do k+=1 if n % i == 0 i+=1 end if k>record then record=k;puts record end if n % 2 == 0 then k1=k else k2=k end puts "Triangle number #{n+1} is #{triangle_n+n+1} and has #{k1+k2} divisors" if k1+k2>=d break if k1+k2>=d puts "Time finished #{Time.now}" if k1+k2>=d n+=1 end