Aikanáro Anário, cuando el código se traduce a ensamblador todos los bucles/ciclos se convierten en saltos (tipo goto). Así que técnicamente una función recursiva es un bucle.
Los ciclos y la recursion son equivalentes.
Ya lo dije, podes escribir cualquier ciclo, como una funcion recursiva, y cualquier funcion recursiva, como un ciclo. Y se puede demostrar y es facil de demostrar.
No creo que esto sea así, más bien diría que todo ciclo puede hacerse con recursión pero no al revés. A no ser que uses estructuras de datos recursivas como una pila.
De hecho si eso fuera cierto podría utilizarse CTO(Call tail optimization) siempre, que es covertir una llamada recursiva en un salto goto, o sea un ciclo. O sea que interesaría convertir toda llamada recursiva en un ciclo ya que este no consume espacio en pila y es más eficiente.
Es que dado un numero, diga si es primo o no.
Yo diría que una función recursiva no es en sí un ciclo, o sea porque no es un for, ni un while, ni un do...while, pero sí es un ciclo, o sea sí, pero no.
El caso es que creo no se puede hacer un algoritmo así, solo con decisiones, o si se puede hacer, pero solo hasta determinado número.
Utiliza una función que diga si un numero es divisible por alguno de los anteriores a otro numero,
divisible(x, num) = mod(x,num) == 0 || divisible(x, num-1)
primo(x) = no(divisible(x,x-1))
Dejo como ejercicio la condición de parada