原题链接:PTA | 程序设计类实验辅助教学平台
Tips:以下Python代码仅个人理解,非最优算法,仅供参考!多学习其他大佬的AC代码!
def is_yuanfen(a):
# 通过a推导c
# a^2 - (a-1)^2 = c^2
cc = a ** 3 - (a - 1) ** 3
c = cc ** 0.5
# 整数C才可以
if c != int(c):
return False
# 枚举
for b in range(2, int(c ** 0.5) + 1):
if c == b ** 2 + (b - 1) ** 2:
return b
return False
m, n = map(int, input().split())
ls = []
for a in range(m, n + 1):
b = is_yuanfen(a)
if b:
ls.append([a, b])
if ls:
for b in ls:
print(f'{b[0]} {b[1]}')
else:
print('No Solution')