C:
Code: Alles auswählen
#include <stdio.h>
#include <gmp.h>
int main(int arg, char** argv)
{
if(arg!=2)
exit(1);
unsigned long to = atol(argv[1]);
MP_INT num;
mpz_init_set_ui(&num,2UL);
for(unsigned long i=3;i<=to;i++)
mpz_mul_ui(&num,&num,i);
char* out=NULL;
printf("0x%s",mpz_get_str(out,16,&num));
}
Code: Alles auswählen
$ time ./cfakt 10000 > /dev/null
real 0m0.016s
user 0m0.008s
sys 0m0.004s
Code: Alles auswählen
$ time ./cfakt 100000 > /dev/null
real 0m2.168s
user 0m1.820s
sys 0m0.000s