

# arquivo: mmc.py
'''
 - Escreva uma funcao que recebe tres inteiros positivos: m, n e d;
   e retorna tres valores, dependendo da relacao entre m, n e d.
   
   Se d e' um divisor de m ou de n, retorna
       True, x, y, onde 
             x = m dividido por d, se d eh divisor de m; x = m se d nao eh divisor de m
             y = n dividido por d, se d eh divisor de n; y = n se d nao eh divisor de n 
   Se d nao e um divisor de m e nem de n, retorna
       False, m e n.
 - Escreva um programa que, dados dois inteiros positivos A e B,
   determina o mi'nimo multiplo comum (mmc)  entre A e B,
   usando a funcao acima.
'''

def main():
    A = int(input("Digite um inteiro positivo: "))
    B = int(input("Digite outro inteiro positivo: "))

    Acopia = A    # copia de A
    Bcopia = B    # copia de B

    mmc = 1
    k = 2
    while A != 1 or B != 1:
        divisivel, A, B = divide(A, B, k) # VEJA ISSO !!!
        if divisivel:
            # A eh divisivel por k ou B eh divisivel por k
            mmc = mmc * k
        else:
            k += 1

    print()
    print("mmc(%d, %d) = %d" %(Acopia, Bcopia, mmc))

#---------------------------------------------------------------------          

def divide(m, n, d):
    ''' (int, int, int) -> bool, int , int

    Recebe tres inteiros positivos: m, n e d.
    Se d eh um divisor de m ou de n, retorna
        True, x, y, onde 
             x = m dividido por d, se d eh divisor de m; x = m se d nao eh divisor de m
             y = n dividido por d, se d eh divisor de n; y = n se d nao eh divisor de n
    Se d nao eh um divisor de m e nem de n, retorna
         False, m e n.

    '''
    
    # ainda nao sabemos se d eh divisor de m ou de n
    d_eh_divisor = False 
 
    if m % d == 0:
        m = m // d
        d_eh_divisor = True

    if n % d == 0:
        n = n // d
        d_eh_divisor = True

    return d_eh_divisor, m, n   # VEJA ISSO!!!

#----------------------------------------------------------

main()
