Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Sep 21st, 2012  |  syntax: None  |  size: 0.37 KB  |  hits: 11  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. class Integer
  2.   def triangle?
  3.     ((Math.sqrt(8 * self + 1) - 1) / 2) % 1 == 0
  4.   end
  5.  
  6.   def pentagonal?
  7.     ((Math.sqrt(24 * self + 1) + 1) / 6) % 1 == 0
  8.   end
  9. end
  10.  
  11. def hexagonal_number(n)
  12.   n * (2 * n - 1)
  13. end
  14.  
  15. max = 100000
  16. hexagonal_numbers = Array.new(max) {|i| hexagonal_number(i + 1) }
  17.  
  18. hexagonal_numbers.each do |h|
  19.   if h.triangle? && h.pentagonal?
  20.     p h
  21.   end
  22. end