3 AnswersNew Answer
Any program that needs to save really huge integers that can be 50+ digits long. The absolute maximum primitive data type in C++ is unsigned long long int with a maximum value 18446744073709551615 which is only 20 digits long. Here's the link to the limits of C++: http://www.cplusplus.com/reference/climits/
C++ supports up to 2^64 - 1. There is also the __uint128_t type which goes up to 2^128 - 1, but is unsupported by the library, so you can't print the number without overloading the << operator yourself. Even this probably isn't enough to store really big factorials. So for C++ you're gonna have to implement your own. The easiest way is probably to take a string and use your math skills to do multiplication like you did in high school.