Con gli interi a 64 bit (unsigned long long su gcc, unsigned int64 su VC++, uint64_t su tutti i compilatori che implementano correttamente stdint.h) dovresti guadagnare qualcosa, ma oltre il 20 non ci arrivi. Se ti servono valori "perfetti" l'unica è usare librerie per lavorare in precisione arbitraria (ad esempio la GMP); in alternativa, puoi lavorare con i double, ma ovviamente perderai in precisione.