Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/06/2012, 11:02
starfix
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 13 años
Puntos: 25
Respuesta: primos entre si c++

la manera que usas para comprobar si los dos numeros tienen solamente el 1 como divisor comun es correcto, pero el problema dice que el algoritmo mas eficiente para hacerlo es el de euclides, indirectamente te dice que utilices este porque si los numeros son muy grandes el algoritmo que planteaste va a demorar mucho... luego dice que, si los dos numeros son primos, entonces, aparte de tener solamente el 1 como divisor comun, el numero menor tiene que ser primo. Te faltaria comprobar si el numero menor es primo

en la funcion mcd no inicializaste la variable primos, en caso de que el if de siempre falso, nunca va a tomar un valor y la funcion puede retornar cualquier cosa:

Código C++:
Ver original
  1. bool mcd (int n, int m){
  2.  
  3. bool primos= true;
  4.  
  5. for (int i = 2; i <= n; i++)
  6.    if (n % i == 0 && m % i == 0) //comprueba si tienen un divisor comun  
  7.        primos = false;
  8.  
  9. return primos;
  10. }

aca te dejo el algoritmo de euclides: parte practica

teoria