Ответ 1
Вы не можете использовать для этого встроенный целочисленный тип. Вам нужна "множественная точность целочисленного", ака-бинарная библиотека. Для С++ я сначала попробую Boost.Multiprecision, но имейте в виду, что Boost может быть значительно больше проблем, чем это стоит, особенно если модуль, который вы используете, имеет совместно используемой библиотеки (aka DLL). Другой очевидный выбор - GNU MP. Он имеет только интерфейс C, но он хорошо поддерживается, надежен, быстр и очень популярен (на самом деле, похоже, что Boost.MP является "просто" оболочкой С++ для него!)
ПРЕДУПРЕЖДЕНИЕ: вам может понадобиться библиотека bignum, потому что вы пытаетесь реализовать один из криптографических примитивов, который использует огромные числа, например RSA. Не делайте этого. Общие библиотеки бигмуна небезопасны для криптографического использования, и даже если бы они были, все равно были бы десятки тонких ошибок, которые вы могли бы сделать, что может испортить вашу безопасность. Вместо этого используйте проверенную библиотеку криптографии; для С++ я рекомендую Botan.