No sé si un
unsigned long long llegará a esa cantidad, pero en todo caso renunciarías a números negativos y además creo que dependerías demasiado de la arquitectura del procesados, ya que sólo funcionaría en 64 bits*
Y como bien dices, en estos casos es mejor usar una librería:
http://en.wikipedia.org/wiki/GNU_Mul...hmetic_Library https://gmplib.org/
*Si digo muchas burradas, me lo decís, que no es cuestión de confundir a nadie