What you want is the MMC - Common Minimum Multiple of the three numbers.
By definition:
- mmc(x,y) = (x * y) / mdc(x,y)
- mmc(x, mmc(y, z)) = mmc(mmc(x, y), z)
#include <stdio.h>
int mdc(int x, int y) {
/* Cálculo do mdc(x,y) utilizando o algoritmo de Euclides */
if (x < y) {
return mdc(y, x);
}
else {
if (x % y == 0)
return y;
else
return mdc(y, x%y);
}
}
int main() {
int n1, n2, n3, a, b, mmc;
printf("Informe os 3 números: ");
scanf("%d %d %d", &n1, &n2, &n3);
a = mdc(n1, n2);
b = mdc(a, n3);
mmc = (n1 * n2 * n3)/ b;
printf("\nO MDC de %d , %d e %d é : %d\n", n1, n2, n3, mdc);
printf("\nO MMC de %d , %d e %d é : %d\n", n1, n2, n3, mmc);
return 0;
}
Regarding your attempt you have to do:
contador = 1;
while (contador <= (11 * 13 * 17)) {
if (contador % 11 == 0 && contador % 13 == 0 && contador % 17 == 0){
printf("%d \n",contador);
break; /* interromper o loop quando encontrar o mmc*/
}
contador++;
}