



from __future__ import annotations

# Define the Gravitational Constant G and the function
_A				:							str							= 6.6743E-11  # unit of G : m^3 * kg^-1 * s^-2


def        __snake_case       (						lowerCAmelCase_   ,       lowerCAmelCase_   ,       lowerCAmelCase_   ,       lowerCAmelCase_  )							->	dict[str, float]:
    SCREAMING_SNAKE_CASE__       							= mass_a * mass_a

    if (force, mass_a, mass_a, distance).count(0  ) != 1:
        raise ValueError('''One and only one argument must be 0'''  )
    if force < 0:
        raise ValueError('''Gravitational force can not be negative'''  )
    if distance < 0:
        raise ValueError('''Distance can not be negative'''  )
    if mass_a < 0 or mass_a < 0:
        raise ValueError('''Mass can not be negative'''  )
    if force == 0:
        SCREAMING_SNAKE_CASE__       							= GRAVITATIONAL_CONSTANT * product_of_mass / (distance**2)
        return {"force": force}
    elif mass_a == 0:
        SCREAMING_SNAKE_CASE__       							= (force) * (distance**2) / (GRAVITATIONAL_CONSTANT * mass_a)
        return {"mass_1": mass_a}
    elif mass_a == 0:
        SCREAMING_SNAKE_CASE__       							= (force) * (distance**2) / (GRAVITATIONAL_CONSTANT * mass_a)
        return {"mass_2": mass_a}
    elif distance == 0:
        SCREAMING_SNAKE_CASE__       							= (GRAVITATIONAL_CONSTANT * product_of_mass / (force)) ** 0.5
        return {"distance": distance}
    raise ValueError('''One and only one argument must be 0'''  )


# Run doctest
if __name__ == "__main__":
  import doctest

  doctest.testmod()







from __future__ import annotations

from collections.abc import Generator


def        __snake_case       (						lowerCAmelCase_  )							->	Generator[int, None, None]:
    if not isinstance(lowerCAmelCase_   ,       lowerCAmelCase_  ) or n < 1:
        raise Exception('''Sequence only defined for positive integers'''  )

    yield n
    while n != 1:
        if n % 2 == 0:
            n //= 2
        else:
            SCREAMING_SNAKE_CASE__       							= 3 * n + 1
        yield n


def        __snake_case       (						)							->	str:
    SCREAMING_SNAKE_CASE__       							= 4_3
    SCREAMING_SNAKE_CASE__       							= tuple(collatz_sequence(lowerCAmelCase_  )  )
    print(lowerCAmelCase_  )
    print(f'''Collatz sequence from {n} took {len(lowerCAmelCase_  )} steps.'''  )


if __name__ == "__main__":
  main()
