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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


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

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Duda con programa, de numeros primos
« en: 18 Abril 2018, 19:33 pm »

Buenas tardes,
Quisiera un poco de ayuda, tengo un problema, hacer un programa que imprima los numeros primos que esten en los primeros 100 numeros,
Lo que no se es como guardarlos en el arreglo para posteriormente imprimirlos,
Soy nuevo en esto,
gracias y saludos
El codigo que realize es el siguiente,
Código
  1. #include <stdio.h>
  2. int main ()
  3. {
  4. int x[100]={0},i,z,a=0;
  5.  
  6. for (z=2;z<100;z++) //Conte a partir del 2, ya que el 1 no es numero primo
  7. {
  8. for (i=1;i<=100;i++)//Numeros que dividen
  9. {
  10. if(z%i==0) //operacion para saber si son primos
  11. {
  12. a=a+1;
  13. }
  14.  
  15. }
  16. }
  17.  
  18. if(a==2)
  19. {
  20. a=x[z];
  21. printf("Los numeros primos del uno al 100 son: %d",x[z]);
  22. }
  23. return 0;
  24. }


« Última modificación: 18 Abril 2018, 19:37 pm por engel lex » En línea

animanegra

Desconectado Desconectado

Mensajes: 287



Ver Perfil
Re: Duda con programa, de numeros primos
« Respuesta #1 en: 18 Abril 2018, 19:50 pm »

Te comento mi punto de vista,
Parece que no tienes dudas con como imprimir si no con el propio algoritmo de calculo de los primos. Igual no necesitas si quiera el array.

Mi sugerencia.

Haz primero un programa para saber si un numero dado por la variable z es primo o no. En caso de ser primo lo imprimes en pantalla.

Cuando ya tienes hecho eso, solo tienes que repetir lo mismo (todo ese programa que te imprime z cuando es primo) para z desde 1 hasta 100.

Bajo mi punto de vista, deberias de afrontar los problemas dividiendolos en subproblemas no como un todo completo.



En línea


42
No contesto mensajes por privado, si tienes alguna pregunta, consulta o petición plantéala en el foro para que se aproveche toda la comunidad.
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Duda con programa, de numeros primos
« Respuesta #2 en: 18 Abril 2018, 19:55 pm »

hola! antes de hacer un programa siempre es bueno leer información relacionada, incluso tan simple como esto...

lo que te dirá cualquier articulo es que
- un numero siempre tendrá divisores iguales o menores a su raiz
- uno no es primo
- ningún par (mas que el 2) es primo

así que... una formula general para buscar numeros primos es

Código:
posible_primo = x
si x es 2, es primo (terminar programa)
si x es par, no es primo (terminar programa)
si x es 3, es primo (terminar programa)

entero i
para i desde 3, hasta i menor o igual que la raiz de x{
    si x es multiplo de i, no es primo (terminar programa)
    i = i+2
}
x es primo (terminar programa)
 

como la operación de raiz usualmente es "complicada" se invierte el sentido en "i menor o igual que la raiz de x" a "i*i menor o igual que x"



ahora con tu problema... lo más practico para resolverlo es agregar una variable que llamaremos "contador", esta empieza en 0 y cada vez que consigas un primo le sumas uno

Código
  1. int primos[100];
  2. int i;
  3. int contador = 0;
  4. for(i = 2; i < 100; i++ ){
  5.  if( es_primo(i) ){ //aquí tus operaciones, yo lo estoy resumiendo
  6.    primos[contador] = i;
  7.    contador++;
  8.  }
  9. }
  10.  
  11. printf("los numeros primos conseguidos son: ");
  12. for(i = 0; i < contador; i++){
  13.  printf("%i, ", primos[i]);
  14. }
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Duda con programa, de numeros primos
« Respuesta #3 en: 18 Abril 2018, 21:42 pm »

Bueno, en verdad tiene razón. Ir poniendo en un array o lista los números primos encontrados desde el 2 se puede llegar a acelerar la búsqueda de los sucesivos. Atendiendo a que la factorización se hace con primos, si buscando primos que son divisibles se llega al final de la lista sabemos que el número sobre el que se pregunta es primo. Incluso se puede acelerar más si llegado a un primo de la lista, su cuadrado es mayor al número en cuestión; se puede decir entonces que ese número es primo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con Programa numeros primos matriz
Java
Jaime1315 7 10,928 Último mensaje 9 Febrero 2013, 13:58 pm
por Mitsu
[JS] ¿Programa para calcular números primos?
Scripting
Linton 5 18,858 Último mensaje 23 Julio 2013, 07:40 am
por Linton
Hacer un programa con DEV C++ de números primos.
Programación C/C++
divadrn 3 13,311 Último mensaje 11 Noviembre 2014, 13:23 pm
por Eternal Idol
Programa de c que de numeros primos
Software
aikoko 0 1,347 Último mensaje 23 Noviembre 2017, 04:16 am
por aikoko
Ayuda con programa que determine los numeros primos en un rango a,b en C
Programación C/C++
acer-x 5 9,876 Último mensaje 10 Junio 2018, 22:32 pm
por 0xFer
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines