19/01/27 18:36:00.36 rE8NR22a.net
>>930 Ruby 2.5.0
def kotae(max)
(1..max).each_with_object([]) do |ra, ary|
x, y = max - ra, 2 * ra**2
1.step(Integer.sqrt(x), 2) do |n|
next if x * n**2 < y
rx = ra + n**2
m, r = (ra + rx).divmod(n)
ry = ra * m / n
next if m.even? || r != 0 || m.gcd(n) != 1
pcpy = [ra, rx, ry].sort
ary.push(*(1..max / pcpy[2]).map{|i| pcpy.map{|e| e * i}})
end
end
end
pys = kotae(100 - 1)
p pys.size # => 82
p pys # => [[1, 2, 3],
[2, 3, 10],
[2, 4, 6],
# 中