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 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。