Hola fenixelian
Para que la función haga lo que tú pides, hay que corregir el valor inicial y el valor final del ciclo for y el orden de los operandos en la operación % (módulo o residuo), y además evitar que el ciclo for entre en un ciclo infinito, así:
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
} // if (a > 3)
} // MD
Saludos cordiales.