buenas. Peazo codigos grandes que poneis. Aqui te pongo una funcion recursiva pequeñita que devuelve el proximo numero primo. Es decir, tu le pasas un numero (sobreentiende que es primo) y te muestra el siguiente. int primoRecursivo(int num){num++;bool primo=true;for (y=2;y*y<=num && primo;y++) if (num%y==0) primo=false;if (primo) return num;else return primoRecursivo(num);}Si ahora, lo que quieres es mostrar x numeros primos con un simple bucleprimo=1;for (z=0;z<x;z++){primo=primoRecursivo(primo);printf("Numero primo numero "+(z+1)+"es "+primo+"\n");}como veis este codigo es mucho mas reducido. Eso si, hay q entender recursivas xDDEDITADO: la primera condicional de la recursiva tiene q ser <=, sino los numeros cuadrados (4,9,16,25...) los daría como primos xDD
2000000....vamos a ver, habla de enteros, por eso hice la funcion con int. Si le pongo float problema solucionado. Solo tienes que cambiar la declaracion de la cursiva de int primoRecursivo(int num)afloat primoRecursivo(float num)porque si te diste cuenta primo no lo inicielice ni a int ni a double ni a float. De todos modos si creeis que recursiva es demasiado, aqui os pongo la funcion sin recursividad:float primoNoRecursivo(float num){bool primo=true;bool division;float y;for (num++;primo;num++){division=true;for (y=2;y*y<=num && division;y++) if (num%y==0) division=false;if (division) primo=false;}return num;}Vaya, casi mas pequeña que la recursiva.Creeis vosotros que "alguien que empieza" entiende mejor esto que la recursiva?? Sinceramente, yo creo que este codigo es más rebuscado y menos claro. Mas preciso, más rápido, mas "economico" debido a no ser recursiva y todo lo que querais, pero weno. En esta si puse float, no me vayan a salir con las mismas (y si me sales con las mismas con el tope de float, hazlo con un vector de numeros (cada posicion un solo digito) a ver si asi te gusta mas, que ahi no tienes limite pq el vector lo puedes hacer cuan largo quieras).