El post que buscas se encuentra eliminado, pero este también te puede interesar

Programa en C que calcula numeros primos

Calcular Números Primos con un Programa en C

Primero y antes que todo, qué es un numero primo. Según Wank-A-Pedia:

Un número primo es un número natural mayor que 1, que tiene únicamente dos divisores distintos: él mismo y el 1.

Ahora, encontré un par de ejemplos en taringa, yo pongo el mio hay un par de diferencias, por ejemplo; ellos prefieren usar un while mientras que yo un segundo for y cositas así. Por eso creo valido y NO un repost, publicar esto, además el código, fue creación completamente mía.

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Programa que Caulcula los primeros N numeros Primos
// Escrito por Luis Landín
// Facultad de Ingenieria, UNAM
// Domingo 14 de Agosto 2011
///////////////////////////////////////////////////////////////////////////////////////////////////////



#include <stdio.h>

int main()
{
unsigned int numero;//limite en los ciclos for
unsigned int n, esPrimo;//n es el ultimo numero que queremos calcular,
//esPrimo es una variable que "guarda" si el numero calculado es primo o no

unsigned int divisor, residuo;//un par de variables para ir probando si es primo o no
unsigned int contador=0;//un contador para saber cuantos primos obtuvimos

printf("n¿Hasta qué número desea conocer los primos?: ";
scanf("%d", &n);

for (numero=2;numero<=n;numero++)
{
for(divisor=2;divisor<numero;divisor++)
{
esPrimo=1;//damos por hecho que el numero es primo, hasta que se demuestre lo contrario
residuo=numero%divisor;
if(residuo==0)
{
esPrimo=0;//si entra aquí, sí, se demostró lo contrario
break;//así que cierra el 2° ciclo for, sigue con el siguiente numero
}
}
if(esPrimo !=0) //después de verificar y anotar si era o no primo, imprime en pantalla
{
printf("%d ",numero);
contador=contador+1;//y añade a nuestro contador un termino mas
}
}
printf("nnEstos son todos los %d numeros primosnn",contador);
getchar();
return 0;//en caso de que exista un error, el compilador nos regresara un 1, en ves de 0
}

En el programa, se puede usar como limite del segundo for, la raiz de el numero a verificar si es primo, yo no lo hice por 2 razones:
a) la función sqrt() funciona con números flotantes, por lo menos gcc, me da problemas al usar enteros
b) la función pierde velocidad al llegar a números muy grandes (aunque claro, las vueltas que da el for también)

yo uso gcc en Fedora y lo llame Primos.c

si desean compilarlo y ejecutarlo escriban en la consola sobre el directorio donde lo guardaron

Programa en C que calcula numeros primos

Espero que les sirva para la tarea, practicar o simplemente para mejorarlo y hacerlo mas rápido (de verdad, llega a tardar 2 seg en imprimir los siguientes 4 términos después de pasar 792179 más o menos con un intel centrino a 2.0 ghz )

Anuncios

Comentarios Destacados

@_Illuminati +6
Me gusta que los user posteen este tipo de cosas!
Recomiendo!

17 comentarios - Programa en C que calcula numeros primos

@_Illuminati +6
Me gusta que los user posteen este tipo de cosas!
Recomiendo!
@gumbleman +2
bien capo..buen uso de taringa
@pituxD -3
No entendi un sorete ...
@LordKuin
Ese algoritmo no es optimo, basta iterar hasta la raiz cuadra del mismo para saber si es primo o no.
La corección es:
for(divisor=2;divisor&lt;=numero*numer;divisor++)

Eso baja la complejidad algorítmica bastante.

Espero que se entienda, es una cuestión matemática.
@miguelcapo
+10 al fin alguien con cerebro en Tadinga. Me sirvio mucho, justo me mandaron ese ejercicio para un TP de la facu. Gracias!
@pablo_4
Che el 1 tambien es un numero primo.
@DarkensitoxX
Grasias amigo, con esoto pude entender este dilema.
@Kanisel
muchas gracias, mi error estaba en el for van +10