10^16 is not what you think. C++ doesn't have operator exponentiation, but have function. **^** is a **xor** operator ( http://en.wikipedia.org/wiki/Exclusive_disjunction )