/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Duda en fucion Maximo comun Multiplo

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
KaKaRoTTo



Registrado: 21 Nov 2006
Mensajes: 35

MensajePublicado: 01/09/2007 12:09 am
Título: Duda en fucion Maximo comun Multiplo

Código:
int MCM ( const int x. const int y ) {
     // Necesita dos enteros
     // Devuelve el mcm de ambos enteros
           int m = Maximo( x, y );
           while ( ( m % x != 0 || m % y != 0 ) ) m++;
           return m;
}


Bien, dentro del tema de programacion modula estoy intentando hacer unas cuantas funciones como esta con distintas operaciones matematicas para hacer un programa bastante completito sobre todas estas funciones y en esta, esta la saque de los apuntes, tengo una pequeña duda

Código:
while ( ( m % x != 0 || m % y != 0 ) ) m++;


Esa linea que significa ?? Es decir, si hubiese que leerla que signifca ?? Mientras...

Se que puede parecer una tonteria, pero me acabo de atascar con ella

Saludos
Volver arriba
v4r3t



Registrado: 06 Mar 2007
Mensajes: 38

MensajePublicado: 01/09/2007 6:05 am
Título:

Significa que mientras que el resto de dividir 'm' entre 'x' o el resto de dividir 'm' entre 'y' sea distinto de 0 'm' se incrementa en una unidad.
Volver arriba
KaKaRoTTo



Registrado: 21 Nov 2006
Mensajes: 35

MensajePublicado: 01/09/2007 6:36 am
Título:

v4r3t escribió:
Significa que mientras que el resto de dividir 'm' entre 'x' o el resto de dividir 'm' entre 'y' sea distinto de 0 'm' se incrementa en una unidad.


OK. Muchas gracias, ya me entere de ello.
Volver arriba
spesmod



Registrado: 23 Ago 2007
Mensajes: 33

MensajePublicado: 01/09/2007 12:55 pm
Título:

hola wey, no soy un excelente estudiante de matematicas pero hasta donde sé solo existe el MINIMO comun multiplo y el maximo comun DIVISOR, no existe el MAXIMO comun MULTIPLO.
exactamente q es lo que quieres?...por el bucle while que has escrito puedo deducir que lo que buscas una forma de hacer el MINIMO comun MULTIPLO.
si es asi no se por que haces el incremento m++ que significa eso¿?¿?¿?

el codigo corrrecto deberia ser algo asi:

Código:
int MCM ( const int x. const int y )
   {
      int m=1, i=2;
      while( x>1 || y>1 )
      {
      if(x%i==0 || y%i==0)
         {
         m=m*i;
         if(x%i==0)
            x=x/i;
         if(y%i==0)
            y=y/i;
         }
      else if
         i++
      }
      return m;
   }


siempre se puede mejorar si lo puedes hacer mas corto enhorabuena!!!
no lo he complidado pero la logica deberia ser correcta para devolver el MINIMO comun MULTIPLO de x e y
espero haber ayudado. xiao
_________________
|--A--Q--U--A--|
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3657
Ubicación: Mexico

MensajePublicado: 01/09/2007 5:53 pm
Título:

Otra opcion es obtener el minimo comun multiplo en base al maximo comun divisor, un ejemplo de esto para sumar fracciones y reducirlas es (C estandar):
Código:
#include <stdio.h>
#include <stdlib.h>

int fn_mcd(int a, int b);

int main(void)
{
   int a, b, x, y;
   int n, d, mcd;
   
   printf("Fracciones a sumar (por ejemplo 5/20 2/8): ");
   fflush(stdout);
   if (scanf("%d/%d %d/%d", &a, &x, &b, &y) != 4 || x == 0 || y == 0)
      return EXIT_FAILURE;
   
   d = (x * y) / fn_mcd(x, y); /* Minimo comun multiplo */
   n = a * (d/x) + b * (d/y);
   
   printf("\n%d/%d + %d/%d = %d/%d", a, x, b, y, n, d);
   if ((mcd = fn_mcd(n, d)) != 1)
      printf(" = %d/%d", n/mcd, d/mcd);
   puts("");
   
   return EXIT_SUCCESS;
}

int fn_mcd(int a, int b)
{
   int r;
   
   while (b != 0){
      r = a % b;
      a = b;
      b = r;
   }
   
   return a;
}



Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com