Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python tìm tất cả bộ ba Pythagoras trong phạm vi cho trước

Bộ ba Pythagoras là ba số nguyên dương a, b, c thoả mãn a² + b² = c². Chương trình dưới đây tìm tất cả các bộ ba với c ≤ giới hạn cho trước.

Ví dụ

def pythagorean_triplets(limit):
    c, m = 0, 2
    while c < limit:
        for n in range(1, m):
            a = m * m - n * n
            b = 2 * m * n
            c = m * m + n * n
            if c > limit:
                break
            print(a, b, c)
        m += 1

upper = 15
print("Giới hạn trên:", upper)
print("Các bộ ba Pythagoras:")
pythagorean_triplets(upper)

Kết quả

Giới hạn trên: 15
Các bộ ba Pythagoras:
3 4 5
8 6 10
5 12 13

Giải thích

  • Sử dụng công thức Euclid: a = m² - n², b = 2mn, c = m² + n² với m > n > 0.
  • Vòng lặp ngoài tăng m, vòng lặp trong duyệt n từ 1 đến m-1.
  • Nếu c vượt quá giới hạn thì dừng vòng lặp trong.
  • In ra các bộ ba tìm được.