Cálculo Mínimo Múltiplo Comum (MMC)

Discussão em 'Progress 4GL' iniciado por lima, Fevereiro 5, 2013.

  1. lima

    lima Membro Participativo

    Opa Anderson,

    Funcionou sua lógica, o problema é qdo temos 3 números..hehehe. Tbm fiz um aqui de forma diferente que retorna o valor correto qdo temos apenas 2 números.

    Abraços.
  2. af.dums

    af.dums Membro Ativo

    Na verdade se tu descobriu de 2, este MMC passa a ser um novo valor pra ti, ai compara esse novo com o terceiro, que conseguirá chegar para os 3 números... Certo?

    Abraços...
  3. af.dums

    af.dums Membro Ativo

    Acho que ainda dá para melhorar, mas para o momento:

    Código:
    def var i-1 as integer no-undo.
    def var i-2 as integer no-undo.
    def var i-3 as integer no-undo.
    
    def var i-mmc as integer no-undo.
    
    update i-1 column-label "Valor 1"
           i-2 column-label "Valor 2"
           i-3 column-label "Valor 3".
    
    run pi-mmc(input  i-1,
               input  i-2,
               output i-mmc).
    
    run pi-mmc(input  i-mmc,
               input  i-3,
               output i-mmc).       
    
    message "MMC: " i-mmc view-as alert-box.
    
    procedure pi-mmc:
        def input  param p-1    as integer no-undo.
        def input  param p-2    as integer no-undo.
        def output param p-cont as integer no-undo.
        
        assign p-cont = if p-1 > p-2 then p-1 else p-2.
        
        repeat:
        
            if (p-cont mod p-1) = 0 and (p-cont mod p-2) = 0 then
                leave.
                    
            assign p-cont = p-cont + 1.
        
        end.    
    
    end.
  4. lima

    lima Membro Participativo

    show Anderson,

    Funcionou perfeitamente, muito obrigado.

    Estou te devendo uma...hehehe

    Abraços.

Compartilhe esta Página