pow(a,a)
already has 98 decimal digits
e
goes beyond std::numeric_limits<double>::max()
I don't know where to use pow(56, 56)
.
In c++ we have a "boxes" with size 1, 2, 4, 8 byte(s). To solve most problems this is enough. However, sometimes required operations with large numbers. For large numbers can be used boost::multiprecision. But for some tasks this may not be enough.
But c++ doesn't care about that, because c++ cares about performance.
Do you know about cpu-cache? Look how-do-cache-lines-work.
Whenever the processor wants to fetch data from main memory, first it will look at the cache buffer to see whether the corresponding address is present in the buffer. If it is there, it will perform the operation by using the cache; no need to fetch from the main memory. This is called a "Cache hit".
If the address is not present in the cache, it is called a "Cache miss". If a cache miss has occurred, that means the processor has go to main memory to fetch the address and it takes some more time.