039 Integer right triangles.sf 456 B

123456789101112131415161718192021222324252627
  1. #!/usr/bin/ruby
  2. # Daniel "Trizen" Șuteu
  3. # License: GPLv3
  4. # Date: 27 January 2017
  5. # https://github.com/trizen
  6. # https://projecteuler.net/problem=39
  7. # Runtime: 1.931s
  8. var t = Hash()
  9. var limit = 1000
  10. for i in (1 .. (limit/3 - 1)) {
  11. for j in (i+1 .. (limit-i)/2) {
  12. var c = (i*i + j*j)
  13. (i + j + c.sqrt > limit) && break
  14. if (c.is_sqr) {
  15. t{i + j + c.isqrt} := 0 ++
  16. }
  17. }
  18. }
  19. say t.keys.sort_by { t{_} }[-1]