ayuda para terminar el codigo

Iniciado por Riskettos, 6 Noviembre 2017, 22:24 PM

0 Miembros y 1 Visitante están viendo este tema.

Riskettos

hola amigos, tengo que diseñar un codigo que me diga los div comunes de dos numeros y no consigo terminarlo, el codigo es el siguiente como veran una vez saco los factores de los dos numeros no se seguir


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int  main()
{
    int A, B, i, j, Div1, Div2, Prove1, Prove2, FactorA, FactorB;
    printf("ALGORITMO QUE CALCULE LOS DIVISORES DE 2 NUMEROS, SU MCD Y MCM, presione intro al dar valores n\n\n");
    printf("Inserte el primer numero \n");
    scanf("%d",&A);
    printf("Inserte el segundo numero \n");
    scanf("%d",&B);
    for(i=1;i<=A;i++){
        Div1=(A/i);
        Prove1=(Div1*i);
        if(Prove1==A){
            printf("\n %d Es divisor de %d \n",i,A);
        }
    }
    for(j=1;j<=B;j++)
    {
        Div2=(B/j);
        Prove2=(Div2*j);
        if(Prove2==B){
            printf("\n %d es divisor de %d \n",j,B);
        }
    } 
    if((Prove1==A)&&(Prove2==B)){
        printf("\n %d es divisor comun \n",     );
    }
system ("pause");
return 0;
}
   
       

MAFUS

No sé si debes sacar el factor común de los números porque te lo pide el ejercicio, pero si no es así usa el algoritmo de Euclides. Este algoritmo es fácil de implementar para un ordenador y con muy poco código da la solución.

CalgaryCorpus

En vez de hacer 2 ciclos, haz solo 1. Desde 2 hasta el menor de los 2 números.
Por cada vuelta calcula el módulo de ambos número respecto al índice.
Si dan cero ambos, ahí tienes un divisor.
No puede haber divisores mayores que el mínimo de ambos, por eso el fin del loop es el mínimo de ambos.
Aqui mi perfil en LinkedIn, invitame un cafe aqui