Ruby
どの2つの和も平方数(1)
大学への数学2000年10月号の≪宿題≫に
どの2つの和も平方数となるような異なる4個の整数の組を一つ求める
という趣旨の問題が出された。
今、
どの2つの和も平方数となるような異なる4個の自然数の組
を探してみる。
# 二つの和が平方数か?
def square(y, z)
a = y + z
b = Math.sqrt(a).to_i
a == b * b
end
N = 10000
p N
(1..N - 3).each{|i|
(i + 1..N - 2).each{|j|
if square(i, j)
(j + 1..N - 1).each{|k|
if square(i, k)
if square(j, k)
(k + 1..N - 2).each{|l|
if square(i, l)
if square(j, l)
if square(k, l)
p [[i, j, k, l], [i + j, i + k, i + l, j + k, j + l, k + l].map{|i| Math.sqrt(i).to_i}.sort]
end
end
end
}
end
end
}
end
}
}
出力結果
10000
[[2, 167, 674, 6722], [13, 26, 29, 82, 83, 86]]
[[2, 359, 482, 3362], [19, 22, 29, 58, 61, 62]]
[[2, 1022, 2114, 6722], [32, 46, 56, 82, 88, 94]]
[[2, 1442, 4487, 7394], [38, 67, 77, 86, 94, 109]]
[[8, 953, 4088, 8456], [31, 64, 71, 92, 97, 112]]
[[8, 1016, 1288, 3473], [32, 36, 48, 59, 67, 69]]
[[18, 882, 2482, 4743], [30, 50, 58, 69, 75, 85]]
[[23, 1346, 4738, 8258], [37, 69, 78, 91, 98, 114]]
[[50, 2450, 4439, 8786], [50, 67, 83, 94, 106, 115]]
[[98, 863, 1346, 5378], [31, 38, 47, 74, 79, 82]]
[[98, 1346, 2018, 5378], [38, 46, 58, 74, 82, 86]]
[[135, 1890, 3586, 8514], [45, 61, 74, 93, 102, 110]]
[[162, 567, 1282, 4194], [27, 38, 43, 66, 69, 74]]
[[200, 1649, 5576, 9800], [43, 76, 85, 100, 107, 124]]
[[208, 576, 1728, 8073], [28, 44, 48, 91, 93, 99]]
[[224, 1712, 2912, 7697], [44, 56, 68, 89, 97, 103]]
[[305, 1376, 2720, 5024], [41, 55, 64, 73, 80, 88]]
[[338, 1106, 3383, 8498], [38, 61, 67, 94, 98, 109]]
[[407, 3314, 4082, 5522], [61, 67, 77, 86, 94, 98]]
[[450, 2466, 3775, 5634], [54, 65, 78, 79, 90, 97]]
[[513, 1008, 1696, 6048], [39, 47, 52, 81, 84, 88]]
[[722, 3122, 3767, 8114], [62, 67, 83, 94, 106, 109]]
[[792, 1512, 2457, 6952], [48, 57, 63, 88, 92, 97]]
[[1512, 3672, 5544, 9097], [72, 84, 96, 103, 113, 121]]
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。