Gudhu 0 Denunciar post Postado Setembro 18, 2007 eh possivel isso? consegui em apenas 50 min com o programa abaixo: #include<time.h>#include<stdio.h>#include<math.h>int main(){unsigned long int d,n=5,i,ne=1000000,cont=2;getchar();clock_t start, end;start=clock();printf ("2 3");while(cont<=ne) { d=3; for(i=0;d<=(int)sqrt((float)n);d=d+2) { if(n%d==0) { i++; } } if(i==0) { printf("%li",n); cont++; }n=n+2;}end=clock();printf(" %f",((end-start)/CLK_TCK));getchar();getchar();return(0);} alguem tem algo q possa me ajudar a encurtar o tempo ? vlw Compartilhar este post Link para o post Compartilhar em outros sites
alexandrehdk 0 Denunciar post Postado Setembro 20, 2007 Você já ouviu falar em GMP Library (Gnu Multiprecision Library)? É uma biblioteca C de bem otimizada. Usando em conjunto com NTL (Number Theory Library), pode-se implementar contas de inteiros com precisão indefinida (só dependendo da memória do seu computador). O maior problema é compilar, que tem seus macetes. Mas se você quiser, posso te enviar por e-mail a minha versão compilada (para pentium iv, mas acho que qualquer pentium serve), junto com as headers. Quanto a exemplos, procure na internet mesmo, que encontrará fácil. Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Setembro 21, 2007 Edite isso e vê se fica melhor: for(i=0; d <= (n/2); d=d+2) { if((n % d) == 0){ i++; break; } } Errei pessoas desculpa. A variável a ser comparada no for é d Compartilhar este post Link para o post Compartilhar em outros sites