Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: muymuyperdido en 24 Noviembre 2012, 20:30 pm



Título: Programa que imprima los 1000 primeros numeros primos
Publicado por: muymuyperdido en 24 Noviembre 2012, 20:30 pm
Almacenandolos en un vector, no sé como plantearlo
Si alguien es capaz de hacerlo por favor ayuda, o al menos unas pautas para no perderme.
Gracias!


Título: Re: Programa que imprima los 1000 primeros numeros primos
Publicado por: Ferno en 24 Noviembre 2012, 20:44 pm
Bueno, podrías intentear hacer algo de código.

Una pequeña ayuda... sin que importe la eficiencia. Puedes hacer un loop con un flag (que sería más bien un contador) que te diga si has llegado a los 1000 números primos almacenados o no (o ver el último índice de tu vector). Dentro de este loop, tomarás números del 0 hasta el que sea (hasta que se cumpla la condición de corte) y llamarás a una función que verifique si es primo o no. Si es primo, lo almacenas en el vector y aumentas en 1 el flag.


Título: Re: Programa que imprima los 1000 primeros numeros primos
Publicado por: muymuyperdido en 24 Noviembre 2012, 20:48 pm
Es que no he estudiado esas funciones, sé lo básico...printf, scanf, for, do while, while, vectores...no más.


Título: Re: Programa que imprima los 1000 primeros numeros primos
Publicado por: Ferno en 24 Noviembre 2012, 21:09 pm
Y con eso es suficiente!
La función para saber si un número es primo o no tenés que escribirla vos!

Sólo debes saber cuándo un número es primo y codear dichas condiciones para testear si un número recibido por parámetro es primo o no. Dependiendo si lo es o no devuelves algún tipo de valor.


Título: Re: Programa que imprima los 1000 primeros numeros primos
Publicado por: muymuyperdido en 24 Noviembre 2012, 21:14 pm
Si, el codigo para saber si es primo o no lo sé, pero eso he de meterlo en una función para almacenarlos todos en un vector (que almacene eso, los 1000 primeros primos)


Título: Re: Programa que imprima los 1000 primeros numeros primos
Publicado por: Ferno en 24 Noviembre 2012, 21:18 pm
Bueno si sabes hacer al menos esa parte, programalo y postealo acá. Y codeá como se te ocurre a partir de eso guardar los valores. A partir de ahí se te puede ayudar mejor!

Saludos


Título: Re: Programa que imprima los 1000 primeros numeros primos
Publicado por: leosansan en 24 Noviembre 2012, 22:29 pm
A la vista del código que pones en el post "Programa con funciones en función de una opción" salta a la vista que más bien parece una falta de fe en ti mismo o que te has bloqueado. Así que ahí va una posible solución a tu problema, calcula los N primos indicados guardándolos en un array como pedias:
Código
  1. #include <stdio.h>
  2. #include <math.h>
  3. int main()
  4. {
  5.    int i,j=0,N,primos[1001];
  6.    printf ("Introduzca un numero:");
  7.    scanf ("%d",&N);
  8.    for (i=0;j<N;i++){
  9.        if (esPrimo(i)!=0) {
  10.            primos[j]=i;
  11.            j++;
  12.        }
  13.    }
  14.    for (i=0;i<N;i++)
  15.        printf ("%d   ",primos[i]);
  16.    return 0;
  17. }
  18. int esPrimo(int n)
  19. {
  20. int rq ,i;
  21. rq = (int) sqrt (n);
  22. for ( i = 2; i <= rq; i++)
  23. {
  24. if (fmod(n,i) == 0)
  25. return 0;
  26. }
  27. return n;
  28. }
Saluditos!.


Título: Re: Programa que imprima los 1000 primeros numeros primos
Publicado por: Beakman en 24 Noviembre 2012, 23:30 pm
A la vista del código que pones en el post "Programa con funciones en función de una opción" salta a la vista que más bien parece una falta de fe en ti mismo o que te has bloqueado. Así que ahí va una posible solución a tu problema, calcula los N primos indicados guardándolos en un array como pedias:
Código
  1. ( ... )
Saluditos!.



Qué gracia tiene si le regalás el programa? Esto no lo ayuda en nada. Al contrario, lo perjudica.