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

Untitled

By: a guest on Sep 21st, 2012  |  syntax: None  |  size: 0.46 KB  |  hits: 8  |  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 pentagonal?
  3.     ((Math.sqrt(24 * self + 1) + 1) / 6) % 1 == 0
  4.   end
  5. end
  6.  
  7. def pentagonal_number(n)
  8.   n * (3 * n - 1) / 2
  9. end
  10.  
  11. max = 10000
  12. pentagonal_numbers = (1..max).to_a.map {|i| pentagonal_number(i) }
  13.  
  14. pentagonal_numbers.each do |sum|
  15.   pentagonal_numbers.select {|v| v < sum / 2 }.each do |p1|
  16.     p2 = sum - p1
  17.     d = p2 - p1
  18.     if p2.pentagonal? && d.pentagonal?
  19.       p "sum:#{sum} p1:#{p1} p2:#{p2} d:#{d}"
  20.       exit
  21.     end
  22.   end
  23. end