Python勾股数元组

liftword3个月前 (04-03)技术文章43
import math

def find_primitive_pythagorean_triples(N, M):
    triples = []
    max_m = int(math.isqrt(M)) + 1
    for m in range(2, max_m):
        for n in range(1, m):
            if (m - n) % 2 == 1 and math.gcd(m, n) == 1:
                a = m**2 - n**2
                b = 2 * m * n
                c = m**2 + n**2
                if a > b:
                    a, b = b, a
                if N <= a <= M and N <= b <= M and N <= c <= M:
                    triples.append((a, b, c))
    # Remove duplicates and sort
    unique_triples = sorted(list(set(triples)))
    return unique_triples

def main():
    N, M = map(int, input().split())
    triples = find_primitive_pythagorean_triples(N, M)
    if not triples:
        print("NA")
    else:
        for a, b, c in sorted(triples):
            print(f"{a} {b} {c}")

if __name__ == "__main__":
    main()


相关文章

Python 中的元组

元组是 Python 中的一种内置数据结构,可用于存储项目的有序集合。与列表类似,元组可以在单个实体中保存多种数据类型,但它们是不可变的,这意味着一旦创建,就无法修改、添加或删除元素。此属性使 Tup...

python序列之元组详解

与列表类似,元组也是由任意元素组成的序列,不同的是元组是不可变的,意味着一旦元组被定义将无法再进行修改操作,因此它显得比较古板。元组的创建:可以使用() 创建元组empty = () #定义了一个空元...

3分钟掌握Python 中的元组

元组是 Python 中一种重要的数据类型,它允许您存储值集合,类似于列表。但是,元组与列表的不同之处在于它们是不可变的,这意味着元组一旦创建,就无法修改。2. 语法在 Python 中,元组是通过在...

Python 元组详解

1. 理解Python中的元组1.1 什么是元组?Python 中的元组是不可变的、有序的元素集合。与列表不同,元组一旦创建就无法修改,这使得它们适合数据完整性至关重要的情况。1.2 创建元组在 Py...

Python元组:你以为它只是只读的列表?它可比你想象的更强大!

提到Python中的元组(tuple),很多人第一反应是:“哦,就是那个不能改的列表嘛!”但如果你只把它当“只读列表”用,可就大材小用了!今天,我们就来扒一扒元组的隐藏技能和超实用场景,看完你一定会惊...

深入探索Python元组的独特魅力

为什么说"不变"也是一种智慧?(保险箱与开放收纳盒的对比,象征元组的不可变特性)一、元组初印象:被封印的列表如果读者有学过其它的语言,其实Python中的元组就相当于其它语言中的枚举类型,只是不知道为...