เมื่อต้องการหาสามตัวเลขพีทาโกรัส (a, b, c) ที่ทำให้ a² + b² = c² ภายในขอบเขตที่กำหนด สามารถใช้สูตรยูคลิด (Euclid's formula)
ตัวอย่างโค้ด
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_limit = 15
print("The upper limit is:", upper_limit)
print("The Pythagorean triplets are:")
pythagorean_triplets(upper_limit)ผลลัพธ์
The upper limit is: 15 The Pythagorean triplets are: 3 4 5 8 6 10 5 12 13
คำอธิบาย
ใช้สูตรยูคลิด: a = m²-n², b = 2mn, c = m²+n² โดยที่ m > n > 0
เริ่ม m = 2 และเพิ่มทีละ 1
สำหรับแต่ละ m วน n จาก 1 ถึง m-1
ถ้า c เกินขอบเขต ให้หยุดลูปใน
พิมพ์สามตัวเลขที่เป็น Pythagorean triplets