#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Nov  4 16:21:29 2024

@author: hagedorn
"""

def ist_primitiv(a, b):
    return gcd(a, b) == 1

def gcd(x, y):
    while y:
        x, y = y, x % y
    return x

def finde_euler_ziegel(max_länge):
    euler_ziegel = []
    
    for a in range(1, max_länge):
        for b in range(a, max_länge):  # b >= a, um Duplikate zu vermeiden
            d = (a**2 + b**2)**0.5
            if d.is_integer() and ist_primitiv(a, b):
                euler_ziegel.append((a, b, int(d)))
                if len(euler_ziegel) == 5:  # Wir wollen nur die ersten 5
                    return euler_ziegel
    
    return euler_ziegel

max_länge = 100
euler_ziegel = finde_euler_ziegel(max_länge)

print("Fünf primitive Euler-Ziegel mit Kantenlängen unter 1000:")
for z in euler_ziegel:
    print(f"Seitenlängen: a={z[0]}, b={z[1]}, Diagonale: d={z[2]}")