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=0 while i<= n do k+=1 if n % i == 0 i+=1 end if n % 2 == 0 then k1=k #k=0 else k2=k #k=0 end #puts "(triangle,n,k,k1,k2) (#{triangle_n},#{n},#{k},#{k1},#{k2})" puts "Triangle number #{n+1} is #{triangle_n+n+1} and has #{k1+k2} divisors" if k1+k2>=d p=false if k1+k2>=d puts "Time finished #{Time.now}" if k1+k2>=d n+=1 end