Python勾股数元组

liftword4周前 (04-03)技术文章15
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的元组,没想象的那么简单

来源:AI入门学习作者:小伍哥Python的元组与列表类似,元组一旦创建,元组中的数据一旦确立就不能改变,不能对元组中中的元素进行增删改操作,因此元组没有增加元素append、更新元素update、弹...

python序列之元组详解

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

3分钟掌握Python 中的元组

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

Python中的元组详解

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

Python 元组详解

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