Для крипты, если хочется ручками потрогать - либа BigDigits, всё необходимое есть (проверка на простоту, возведение в степень, работа с очень большими числами, и т.д.)
www.di-mgt.com.au/bigdigits.html
по вашему вопросу - у вас число неправильное
184467440737095511615
18446744073709551615 <-- правильное
(меня плющит, или в вопросе число поменялось на правильное?)
и можно юзать тип unsigned long long
unsigned long long number = 18446744073709551615; //у меня компилится без нареканий
имхо, проще в шестнадцатеричной:
unsigned long long number = 0xFFFFFFFFFFFFFFFF;