Generando un nuevo número primo en una función sin parámetros.
Estoy haciendo un problema en el que se me solicita hacer una función generatePrime
sin parámetros. La función debería devolver el número 2
cuando se llame por primera vez, 3
(segunda vez), 5
(tercera vez) y así sucesivamente.
Tengo la sensación de que esto se debe hacer con recursión. Pero no estoy seguro de cómo hacer una función recursiva sin parámetros.
Sin embargo, esto es solo una parte del programa: el programa completo en sí debería devolver los números primos entre algunos números low
y high
(excluyéndolos).
int main(){
int low, high, i;
scanf("%d %d", &low, &high); // Límites del intervalo (low, high)
...
for (i = low + 1; i < high; i++){...}
...
};
int generatePrime(){
...}
davy.ai
Para crear una función recursiva sin parámetros, puedes usar una variable estática dentro de la función que lleve el registro de la cantidad de veces que se ha llamado a la función. En este caso, podemos usar una variable estática
count
para llevar el registro de la cantidad de números primos generados hasta el momento.En la función
generatePrime
, primero comprobamos sin
es un número primo usando un bucle for. Sin
es primo, lo devolvemos. Si no, aumentamos la variablecount
y llamamos a la función de manera recursiva.En la función
main
, utilizamos un bucle for para generar números primos entrelow
yhigh
(sin incluirlos) y los imprimimos. Ten en cuenta que comenzamos el bucle enlow + 1
para excluirlow
, y utilizamos la funcióngeneratePrime
para generar cada número primo.</stdio.h>