def gcd(x: int, y: int) -> int:
    """
    Euclidean GCD algorithm (Greatest Common Divisor)

    >>> gcd(0, 0)
    0
    >>> gcd(23, 42)
    1
    >>> gcd(15, 33)
    3
    >>> gcd(12345, 67890)
    15
    """

    return x if y == 0 else gcd(y, x % y)