MMC mínimo múltiplo comum
Exercício de lógica de programação para descobrir o MMC (mínimo múltiplo comum).
Exercício de lógica de programação
Faça um programa para calcular o MMC (mínimo múltiplo comum) entre dois números.
Linguagem C
Se calcularmos o MDC poderemos utilizar a propriedade:
“Sejam a e b dois ou mais números naturais não nulos temos que MMC(a, b) . MDC(a, b) = a . b.”
Invertendo as contas, temos MMC = a . b / MDC
#include <stdio.h>
#include <assert.h>
//
// Função mmc
//
int mmc(int num1, int num2) {
// Aqui entra a lógica do programa.
}
//
// Testes
//
int main() {
// 2 * 2 * 3 * 5 = 60
assert(60 == mmc(12, 20));
return 0;
}
Primeira solução na linguagem C
//
// Função mmc
//
int mmc(int num1, int num2) {
int resto, a, b;
a = num1;
b = num2;
do {
resto = a % b;
a = b;
b = resto;
} while (resto != 0);
return ( num1 * num2) / a;
}
Segunda solução na linguagem C
Sempre há mais de uma solução para um mesmo problema. O desafio é realizar o teste de mesa e procurar entender o funcionamento do código.
//
// Função mmc
//
int mmc(int num1, int num2) {
int mmc, aux, i;
for (i = 2; i <= num2; i++) {
aux = num1 * i;
if ((aux % num2) == 0) {
mmc = aux;
i = num2 + 1;
}
}
return mmc;
}
Linguagem Python
# -*- coding: utf-8 -*-
#
# Função mmc
#
def mmc(num1, num2):
pass
#
# Teste
#
# 2 * 2 * 3 * 5 = 60
assert 60 == mmc(12, 20)
Solução na linguagem Python
Segue o mesmo raciocínio, primeiro extraímos o MDC e depois aplicamos a fórmula MMC = a . b / MDC
“Sejam a e b dois ou mais números naturais não nulos temos que MMC(a, b) . MDC(a, b) = a . b.”
# -*- coding: utf-8 -*-
#
# Função mmc
#
def mmc(num1, num2):
a = num1
b = num2
resto = None
while resto is not 0:
resto = a % b
a = b
b = resto
return (num1 * num2) / a
#
# Teste
#
# 2 * 2 * 3 * 5 = 60
assert 60 == mmc(12, 20)
Linguagem JavaScript (Node.js)
Abaixo nosso código inicial escrito em JavaScript (Node.js), utilize ele para resolver o problema.
var assert = require('assert');
//
// Função mmc
//
var mmc = function(num1, num2) {
}
//
// Testes
//
try {
// 2 * 2 * 3 * 5 = 60
assert.equal(60, mmc(12, 20));
} catch(e) {
console.log(e);
}
Solução na linguagem JavaScript (Node.js)
var assert = require('assert');
//
// Função mmc
//
var mmc = function(num1, num2) {
var resto, a, b;
a = num1;
b = num2;
do {
resto = a % b;
a = b;
b = resto;
} while (resto != 0);
return (num1 * num2) / a;
}
//
// Testes
//
try {
// 2 * 2 * 3 * 5 = 60
assert.equal(60, mmc(12, 20));
} catch(e) {
console.log(e);
}