如果三个正整数A、B、C ,A²+B²=C²则为勾股数
如果ABC之间两两互质,即A与B,A与C,B与C均互质没有公约数,
则称其为勾股数元组。
请求出给定n~m范围内所有的勾股数元组
输入描述
起始范围
1 < n < 10000
n < m < 10000
输出描述
ABC保证A<B<C
输出格式A B C
多组勾股数元组,按照A B C升序的排序方式输出。
若给定范围内,找不到勾股数元组时,输出Na。
示例一
输入
1
20
输出
3 4 5
5 12 13
8 15 17
示例二
输入
5
10
输出
Na
题目思路:
从n到m选出三个数字A B C
1,互为质数,没有公约数
2,不可重复 A!=B!=C
3,符合勾股定理 A^2+B^2=C^2
n,m = map(int,input().split()) #转换类似
def gys(x,y,z):
for i in range(2,min(x,y,z)**2):
if x%i == 0 and y%i == 0 and z%i == 0: #互相不整除,互为质数
return False
return True
res = []
try:
for A in range(n,m+1):
for B in range(A,m+1):
for C in range(B,m+1):
if A**2 + B**2 == C**2 and gys(A,B,C):
res.append((A,B,C))
if len(res)==0:
print("Na")
else:
# print(res)
for i,j,k in res:
print(i,j,k) #输出为数字
except Exception as e:
print("ERROR:",e)
如果ABC之间两两互质,即A与B,A与C,B与C均互质没有公约数,如果三个正整数A、B、C ,A²+B²=C²则为勾股数。多组勾股数元组,按照A B C升序的排序方式输出。若给定范围内,找不到勾股数元组时,输出Na。3,符合勾股定理 A^2+B^2=C^2。请求出给定n~m范围内所有的勾股数元组。从n到m选出三个数字A B C。2,不可重复 A!1,互为质数,没有公约数。则称其为勾股数元组。ABC保证A