Hola fenixelian
Gracias por la foto, estuvo excelente! me hizo acordar!!
El error se da porque toda función en C debe retornar un valor y nuestra función MD sólo retorna valores cuando se cumple la condición (a % n) == 0 y (a > 3)
Te paso el código corregido
Código:
public static int MD(int a)
{
int n;
{
if (a > 3) // porque el primer número entero no primo es el 4
{
for (n = a - 1; n == 1; n--) // n-- es lo mismo que n = n - 1
{
if (a % n == 0)
{
return n;
} // if
} // for
return 1; // si se llega hasta aquí es porque no se encontró divisor
}
else // a < 4
{
return 1; // indica que sólo es divisible por 1 (es decir, a = num primo)
} // if (a > 3)
} // MD
Me había centrado en la lógica del algoritmo y me olvidé que el Lenguaje C es exquisito y detallista, en este caso con los retornos de función.
Fijate si puse bien el "else", lo que pasa es que sólo tengo el VB.NET Express
y sólo puedo probar código Visual Basic.
Saludos cordiales.