Foro de elhacker.net

Programación => Java => Mensaje iniciado por: darkerek en 17 Octubre 2012, 17:03 pm



Título: Fallo en recursividad
Publicado por: darkerek en 17 Octubre 2012, 17:03 pm
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


Código:
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;
}

}


Título: Re: Fallo en recursividad
Publicado por: RevangelyonX en 17 Octubre 2012, 18:49 pm
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