Fallo en recursividad

Iniciado por darkerek, 17 Octubre 2012, 17:03 PM

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

darkerek

Es un metodo recursivo que evalua si un numero es primo o no qu  unicamente falla con 15,25,35,45,55 ...

Con dichos numeros la excepción que da es Exception in thread "main" java.lang.StackOverflowError

sabriais alguno decirme el porque ?

Graias



private static int cont = 2;
public static boolean esPrimo(int num) {
byte aux = 0;
if (num % cont == 0) {
aux = 0;
} else {
aux = 1;
esPrimo(num-1);
}
if (aux == 0) {
return false;
} else {
return true;
}

}

RevangelyonX

Puedes parar el bucle a 1000 por ejemplo?
Si los numeros primos son infinitos. Tu bucle también.

Pd: tu segundo if se puede quitar todo y agregar:
Return false; ya que solo si aux vale 0 llegará hasta ese punto.

Salu2
Just Linux
OSCP certified