numeros primos

mr_lord
21 de Noviembre del 2005
Please, me hace falta que alguien me ayude en un algoritmo para saber de una lista de numeros cual de ellos es primo, de veras que lo necesito lo antes posible

Gracias de antemano...
Saludos...

kike
21 de Noviembre del 2005
int primo(int num)
{
for(int i=2; i<num; i++)
{
if(!(num%i))
return 0;
}
return 1;
}

mr_lord
21 de Noviembre del 2005
gracias hermano...
Ahora otra pregunta, como yo puedo contar el tiempo de demora de la busqueda de todos los n numeros entrados por el usuario, por ejemplo en milisegundos ??

kike
21 de Noviembre del 2005
En la libreria time.h tienes la funcion clock() que te devuelve un tipo cock_t que basicamente contiene el numero de ticks (ciclos del procesador) desde que inicio el programa, puedes restar dos objetos clock_t y obtener la diferencia de ticks en un numero real, despues debes usar la constante CLOCKS_PER_SEC para convertir el resultado en segundos.

Debes modificar main e incluir las secciones entre comentarios,

int main()
{
///////////
clock_t inicio,fin;
double duracion;
inicio=clock();
//////////
printf("ntNumeros primos entre 2 y 10000:n");
int cont=0;
for(long x=2;x<=100;x++)
{
if(primo(x))
{
cout<<setw(9)<<x;
cont++;
}
if(cont==5)
{
cout<<endl;
cont=0;
}
}
/////////////
fin=clock();
duracion=(double)(fin-inicio)/ CLOCKS_PER_SEC;
cout<<"Duracion en segundos="<<duracion<<endl;
/////////////
getch();
return 0;
}

cuando lo pruebes igual te da 0, esto se debe ha que realiza todo el trabajo en menos de un tick, por lo menos asi ocurria en mi ordenador, dependera de la velocidad del tuyo. Puedes comprobar esto perdiendo tiempo con un bucle por ejemplo para que la diferencia sea apreciable.
Ya diras...

mr_lord
21 de Noviembre del 2005
muchas gracias ya lo probe y me sirvio, pues yo lo hago hasta 100000 y me da entre 5 y 6 segundos el tiempo, de veras que te lo agradezco