Euler brick(1)
辺の長さが2500以下のprimitive Euler brickの辺の組を出力してみた。
class Array
  def gcd
    self.inject{|a, b| a.gcd(b)}
  end
end
n = 2500
(1..n).each{|i|
  (i..n).each{|j|
    (j..n).each{|k|
      l0 = Math.sqrt(i * i + j * j).to_i
      if l0 * l0 == i * i + j * j
        l1 = Math.sqrt(j * j + k * k).to_i
        if l1 * l1 == j * j + k * k
          l2 = Math.sqrt(i * i + k * k).to_i
          if l2 * l2 == i * i + k * k
            if [i, j, k].gcd == 1
              l3 = Math.sqrt(i * i + j * j + k * k).to_i
              # 斜辺も整数かどうか?
              p [i, j, k, l3 * l3 == i * i + j * j + k * k]
            end
          end
        end
      end
    }
  }
}
出力結果
[44, 117, 240, false]
[85, 132, 720, false]
[140, 480, 693, false]
[160, 231, 792, false]
[187, 1020, 1584, false]
[240, 252, 275, false]
[429, 880, 2340, false]
[1008, 1100, 1155, false]
 
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。