include Math
def main
puts "6 digits"
check_range((100..999), 1000)
puts "10 digits"
check_range((10000..99999), 100000)
end
def check_range(r, w)
s = 0
r.each do |x|
org = get_org(x, w)
if org != 0
puts "matched: #{org}"
s = s + org
end
end
puts "sum: #{s}"
end
# check x^2+y^2==xxyy and returns original number or 0
def get_org(x, w)
a = x * (w - x)
y = sqrt(a).to_i + 1
if a == y * (y - 1)
return x * w + y
else
return 0
end
end
main
aW5jbHVkZSBNYXRoCgpkZWYgbWFpbgogIHB1dHMgIjYgZGlnaXRzIgogIGNoZWNrX3JhbmdlKCgxMDAuLjk5OSksIDEwMDApCgogIHB1dHMgIjEwIGRpZ2l0cyIKICBjaGVja19yYW5nZSgoMTAwMDAuLjk5OTk5KSwgMTAwMDAwKQplbmQKCmRlZiBjaGVja19yYW5nZShyLCB3KQogIHMgPSAwCiAgci5lYWNoIGRvIHx4fAogICAgb3JnID0gZ2V0X29yZyh4LCB3KQogICAgaWYgb3JnICE9IDAKICAgICAgcHV0cyAibWF0Y2hlZDogI3tvcmd9IgogICAgICBzID0gcyArIG9yZwogICAgZW5kCiAgZW5kCiAgcHV0cyAic3VtOiAje3N9IgplbmQKCiMgY2hlY2sgeF4yK3leMj09eHh5eSBhbmQgcmV0dXJucyBvcmlnaW5hbCBudW1iZXIgb3IgMApkZWYgZ2V0X29yZyh4LCB3KQogIGEgPSB4ICogKHcgLSB4KQogIHkgPSBzcXJ0KGEpLnRvX2kgKyAxCiAgaWYgYSA9PSB5ICogKHkgLSAxKQogICAgcmV0dXJuIHggKiB3ICsgeQogIGVsc2UKICAgIHJldHVybiAwCiAgZW5kCmVuZAoKbWFpbgo=