elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  calcular numeros primos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: calcular numeros primos  (Leído 12,248 veces)
AlkatraaZ

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: calcular numeros primos
« Respuesta #10 en: 4 Julio 2012, 18:33 pm »

do-while, aunque no lo creas me diste la solucion al de los primeros N primos jajaj
ayer a la noche estaba teniendo un problema, si yo queria encontrar los 10 primeros primos, me daba solamente 2, 3 y el programa quedaba ejecutando, como en un bucle... este era el codigo:
Código
  1. #include <iostream>
  2. #define pl '\n'
  3. #include <cstdlib>
  4. #include <cstdio>
  5. using namespace std;
  6. /*Determine los 1000 primeros primos.*/
  7. int main(int argc, char *argv[]) {
  8. int n=2,c=n-1,suma,p,contp=0;
  9. cout<<"Ingrese la cantidad de numeros primos que desea obtener"<<pl;
  10. cin>>p; //p=cantidad de primos que quiero obtener
  11. while (contp<p)//mientras los primos que obtube<los que quiero...
  12. {
  13. while (c>1)
  14. {
  15. suma*=n%c;
  16. c-=1;
  17. }
  18. if (suma!=0)
  19. {
  20. cout<<"El numero "<<n<<" es primo"<<pl;
  21. contp++;//cuenta que obtubo un primo
  22. }
  23. suma=1; //<- me faltaba esto!
  24. n++;//
  25. c=n-1;
  26. }
  27. system("PAUSE");
  28. return 0;
  29. }

yo pensaba que cuando el numero no era primo (como seria el caso del 4, que no me aparecia) y pasaba por el lado falso del if no hacia n++, estuve largo rato rompiendome la cabeza hasta que me di cuenta que me faltaba volver a darle un valor distinto de 0 a suma, sino una vez que un numero no fuera primo, en adelante suma iba a ser siempre 0, que error tonto...


En línea

do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: calcular numeros primos
« Respuesta #11 en: 4 Julio 2012, 20:10 pm »

XD

Pues tenia entendido que c++ inicializaba a cero, pero no debe ser asi entonces. Por lo tanto debe se como en C, que las variables tienen "basura", y en particular, auque sea poco problable, es posible que ese valor inicial sea cero. Por eso intenta inicializar las variables con valores que tengan sentido para el uso que les vayas a dar (o como en este caso, una vez que terminas de usarlas, dejarlas como al principio para la siguiente vez que las utilices).

¡Saludos!


En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
AlkatraaZ

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: calcular numeros primos
« Respuesta #12 en: 4 Julio 2012, 20:19 pm »

igualmente ahora solo calcula hasta el primo 61... creo que es el 16º, despues no arroja ningun valor y queda ejecutando indefinidamente... ya me voy a poner a hacerle una prueba de escritorio a ver que esta fallando...
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python 2.6] Funcion generadora de Numeros primos (5.761.455 primos en 19 seg)
Python
katas 2 9,897 Último mensaje 10 Marzo 2010, 01:50 am
por Novlucker
Help! Calcular máximo de 3 numeros usando función
Programación C/C++
sora_ori 5 4,047 Último mensaje 18 Febrero 2013, 23:34 pm
por BatchianoISpyxolo
Función para calcular los números de Fibonacci
Programación C/C++
Caster 4 3,085 Último mensaje 18 Mayo 2013, 14:00 pm
por Caster
[JS] ¿Programa para calcular números primos?
Scripting
Linton 5 19,439 Último mensaje 23 Julio 2013, 07:40 am
por Linton
codigo para calcular los numeros primos « 1 2 3 4 »
Programación C/C++
minari02 32 23,325 Último mensaje 28 Diciembre 2013, 16:35 pm
por leosansan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines