试题之勾股数

该篇文章介绍了如何使用Python编写一个算法,遍历给定范围内的正整数对(n,m),检查它们是否满足勾股数条件,并且两两互质。当找到符合条件的勾股数元组时,将其添加到结果列表中并按顺序输出,若无解则返回Na。
摘要由CSDN通过智能技术生成

题目描述
如果三个正整数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。

res=[]
def san(n,m):
    for a in range(n,m+1):
        for b in range(a,m+1):
            for c in range(b,m+1):
                if(c>m):
                    break
                if(c*c==a*a+b*b and mat(a,b,c)):
                    # if(mat(a,b) or mat(b,k)):
                    res.append((a,b,c))
                    print(a,b,c)






def mat(c,d,f):
    for i in range(2, min(c,d,f)**2):
            if (c % i == 0 and d % i==0 and f % i==0):
                return False
    return True

if __name__ == '__main__':
    n = int(input())
    m = int(input())
    mayy=san(n, m)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值