I suspect you already know that the answer to question 1 is given in question 2.
Big numbers are the real problem here. You have choices - use a language that handles big numbers natively, such as Python. Or use one that provides a big number library - I think some dialects of C++ do, and perhaps Java. Or write some methods to do simple math on big numbers stored as strings or arrays.
Of course, this last option is the most challenging and interesting.