
Calculo de numeros Primos
C/Visual C
Publicado el 26 de Agosto del 2002 por Santiago Bruno
14.813 visualizaciones desde el 26 de Agosto del 2002
Aplicación desarrollada en C que calcula los numeros primos.
/* Programa para calcular los numeros primos menores que un numero dado */
/* Por Santiago Bruno */
/* E-mail: banana@radar.com.ar */
/* Bajado de: http://usuarios.arnet.com.ar/sbruno/c */
#include <math.h>
#include <stdio.h>
#include <errno.h>
int esprimo(int[],int);
void wrtar(int[],int);
int main(void)
{
double x;
int b,tot, a,e;
/* Nota: en este arreglo se almacenan los numeros primos ya calculados,
si el numero limite para calcular los primos menores es demasiado grande,
seria conveniente agrandar el arreglo. Si se dispone de muy poca memoria,
convendria reducirlo. */
int primos[99999];
tot = 0;
e = 2;
b = 2;
printf(\"\\nCalcular primos menores que: \");
scanf(\"%i\",&a);
while (a <3) {
printf(\"\\nEste numero debe ser mayor o igual a tres, reingreselo: \");
scanf(\"%i\",&a);
}
printf(\"\\n\");
while (b < a) {
if (esprimo(primos,b)==1) {primos[tot] = b; tot= tot + 1;}
b = b+1;
e=2;}
wrtar(primos,tot);
printf(\"\\nTotal de numeros primos: %i\\n\",tot);
printf(\"\\nProgramado en C Por Santiago Bruno 24 de abril 2001 - Cordoba - Argentina\");
printf(\"\\ne-mail: banana@radar.com.ar \\n\");
return(0);
}
int esprimo(int primos[],int a)
{
int i,e,p;
double x;
e = 2;
p = 1;
i = 0;
while (primos[i] <= sqrt(a) && primos[i] != 0) {
if ((a%primos[i])==0) {p=0;}
i = i +1;
}
return(p);
}
void wrtar(int aa[],int N) {
int i;
i = 0;
while (i < N) {
printf(\"%i\\t\",aa[i]);
i = i+1;
}
}
Comentarios sobre la versión: Versión 1 (2)
/* Programa para calcular los numeros primos menores que un numero dado */
/* Por Santiago Bruno */
/* E-mail: [email protected] */
/* Bajado de: http://usuarios.arnet.com.ar/sbruno/c */
#include <math.h>
#include <stdio.h>
#include <errno.h>
int esprimo(int[],int);
void wrtar(int[],int);
int main(void)
{
double x;
int b,tot, a,e;
/* Nota: en este arreglo se almacenan los numeros primos ya calculados,
si el numero limite para calcular los primos menores es demasiado grande,
seria conveniente agrandar el arreglo. Si se dispone de muy poca memoria,
convendria reducirlo. */
int primos[99999];
tot = 0;
e = 2;
b = 2;
printf("\nCalcular primos menores que:");
scanf("%i",&a);
while (a <3) {
printf("\nEste numero debe ser mayor o igual a tres, reingreselo:");
scanf("%i",&a);
}
printf("\n");
while (b < a) {
if (esprimo(primos,b)==1) {primos[tot] = b; tot= tot + 1;}
b = b+1;
e=2;}
wrtar(primos,tot);
printf("\nTotal de numeros primos: %i",tot);
printf("\nProgramado en C Por Santiago Bruno 24 de abril 2001 - Cordoba - Argentina");
printf("\ne-mail: [email protected] \n");
return(0);
}
int esprimo(int primos[],int a)
{
int i,e,p;
double x;
e = 2;
p = 1;
i = 0;
while (primos[i] <= sqrt(a) && primos[i] != 0) {
if ((a%primos[i])==0) {p=0;}
i = i +1;
}
return(p);
}
void wrtar(int aa[],int N) {
int i;
i = 0;
while (i < N) {
printf("%i\t",aa[i]);
i = i+1;
}
}