I simply want a type that can hold something big enough to print the following value when the 'n' constant is equal to at least 100. Is this possible? If not, how can I get this value?

Code:
#include <iostream>

const int n = 66;

int main(void) {
    unsigned long long sum;
    
    for (int i=1;i<n;i++)
        sum*=(n-i);
    
    // this value is way too big if I use any 'n' value higher than 66
    // I can get as far as n=66 with an unsigned long long
    // it prints: 9 223 372 036 854 775 808 
    std::cout << sum;

    return 0;
}
Thankful for help..