Opcje:
- użyj bibliotekę do liczb o dowolnej wielkości; C++ nie ma takiej w bibliotece standardowej, ale dość powszechnie używany jest Boost.Multiprecision:
#include <boost/multiprecision/cpp_int.hpp>
#include <iostream>
using namespace boost::multiprecision;
int main()
{
auto v = pow(cpp_int(2), 234);
std::cout << v << "\n";
// 27606985387162255149739023449108101809804435888681546220650096895197184
}
- to samo, ale w C - na przykład z GMP:
#include <stdio.h>
#include <gmp.h>
int main(){
mpz_t v;
mpz_init(v);
mpz_set_ui(v, 2);
mpz_pow_ui(v, v, 234);
mpz_out_str(stdout, 10, v);
// 27606985387162255149739023449108101809804435888681546220650096895197184~/test
}
- użyj język ze standardową biblioteką do liczb dowolnej wielkości, np C#
var b = BigInteger.Pow(2, 234);
// 27606985387162255149739023449108101809804435888681546220650096895197184
- użyj język z wbudowaną obsługą liczb dowolnej wielkości, np Python:
>>> 2**234
27606985387162255149739023449108101809804435888681546220650096895197184
- ewentualnie użyj floata, ale pewnie nie o to chodzi.