Buenas, tengo una duda medio general. Lo he estado pensando pero no me sale. Mi duda es si es posible implementar de manera recursiva una función que me determine si un número es primo o no. Desde ya, muchas gracias
En respuesta a Florencia Roque Justo
Re: Función booleana esPrimo de manera recursiva?
de Fernando Fernandez -
Podría ser con una función auxiliar tieneDivisores(i.n), 2 <= i < n, que devuelve true si y solo si en el rango 2 ... i hay algún divisor de n.
tieneDivisores (2, n) -> n%2 == 0
para i > 2
tieneDivisores(i,n) -> tieneDivisores(i-1, n) || (n % i == 0)
Esta función es recursiva.
Y entonces
esPrimo(n) -> ! tieneDivisores(raiz(n), n)
No digo que sea muy eficiente.
En respuesta a Florencia Roque Justo
Re: Función booleana esPrimo de manera recursiva?
Podría ser una recursión que se va pasando una lista de primos, arrancas con 2,3, y 5 ponele, si ninguno de los tres lo dividie ese numero es primo y lo agregas a la lista y así vas avanzando hasta el numero x que queres. Podes ya determinar que es primo en el mayor a raiz de x. Si es primo lo agregas a la lista y después consulta si esta en la lista.