InicioCiencia EducacionPrograma en C que calcula numeros primos

Programa en C que calcula numeros primos

Ciencia Educacion8/15/2011

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



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 )
Datos archivados del Taringa! original
45puntos
712visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

L
Lanmar🇦🇷
Usuario
Puntos0
Posts6
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.