/*
Programa para buscar numeros primos en un rango dado
unsigned long long 64 0 to 18,446,744,073,709,551,615
Geronimo Orozco
http://glo.org.mx/~patux/crypto/
Uso: ./{$program} <num_inicio> <num_fin>
*/
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
unsigned long long isprime(unsigned long long a)
{
unsigned long long i; // iterador
if ((a==2) || (a==3))
return TRUE;
else if ((a%2)==0)
{
return FALSE;
}
else
{
for (i=2;i<a;++i)
{
if (a%i==0)
return FALSE;
if (i==a/2)
return TRUE;
}
}
}
int main(int argc, char *argv[])
{
int count;
unsigned long long num,contador=0,res,limite,inicio;
if (argc > 2)
{
inicio=atoll(argv[1]);
limite=atoll(argv[2]);
printf ("Numeros primos desde %s hasta %s\n\n",argv[1],argv[2]);
for (num=inicio;num<limite; num++)
{
res=isprime(num);
if (res==TRUE)
{
printf (" %llu",num);
contador++;
}
}
printf ("\nTotal primos:%llu \n\n",contador);
return 0;
}
else {
printf ("Modo de usarse:\n\n ");
printf ("%s <start_number> <end_number>\n\n" ,argv[0]);
return 1;
}
}