C/Visual C - duda con ejercicio de clase

 
Vista:

duda con ejercicio de clase

Publicado por dai1 (14 intervenciones) el 29/10/2007 12:28:16
Hola q tal?estaba aciendo un ejercicio de clase que dice

Programa en el que introducimos un numero N y nos devuelve los N primeros números primos

y el codigo q tengo es este

#include<stdio.h>

void main()
{
int n,x,z,cont,esprimo;
double div=0;
char resp;

printf("*******************************************************************************************\t\n");
printf("Programa en el que introducimos un numero N y nos devuelve los N primeros números primos\n");
printf("*******************************************************************************************\t\n");

do
{
printf("\n");

printf("Introduce un numero:\n");
fflush(stdin);
scanf("%d",&n);

while(n<0)
{
printf("Ese dato es erroneo\n");
printf("Introduce un numero:\n");
fflush(stdin);
scanf("%d",&n);
}

printf("\n");

printf("Los primeros numeros primos son\n\n");

cont=0;

while(cont<=n)
{

for(x=1;x<=n;x++)
{
esprimo=1;

for(z=n;z>0;z--)
{
div=z%x;
if(div==0)
esprimo=0;
}
if(esprimo==1)
cont++;

printf("%d\n",x);
}

}

printf("\n");

printf("Quieres introducir otro numero:\n");
fflush(stdin);
scanf("%c",&resp);
}
while(resp=='s' || resp=='S');
}

Entonces se que tengo que ir hasta n para sacar todos los primos pero no se como continuar con esos dos for,si alguien me pudiera ayudar...

gracias por adelantado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:duda con ejercicio de clase

Publicado por Sergio (2 intervenciones) el 29/10/2007 13:39:44
Hace mucho tiempo que no toco nada de C, pero yo lo haria todo con un solo for, y menos variables. (a lo mejor no he entendido bien lo que buscas).

for(z=n;z>0;z--){
if(z%n==0)
print(%d,z);
}

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:duda con ejercicio de clase

Publicado por Sergio (2 intervenciones) el 30/10/2007 07:06:24
Perdona que hayer se me fue la cabeza...La solucion de hayer te daba todos los numeros (fueran o no primos) divisibles entre n. Creo que esta es la solucion correcta:

for(x=n;x>0;x--){
cont=0;
for(z=x;z>0;z--){
if(z%n==0)
cont++;
}
if(cont==1)
print(%d,x);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:duda con ejercicio de clase

Publicado por Nelek (816 intervenciones) el 30/10/2007 09:22:25
Mira abajo en el mensaje de primos descendentes o algo asi... (6 o 7 mensajes antes) he contestado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar