I am trying to write a program that does integer math on extremely large numbers.

Basically, I'm going to be multiplying two numbers in the range of 250 (decimal) digits together, and comparing the results to a much larger number (say 500 decimal digits). Based on the results of the comparison, one of the two initial numbers will be modified.

My question is, how would I set these extremely long numbers as variables? I know that a 1560bit number will not fit into a "long long". Anyone know of any libraries or anything that might help me with this?

Thanks!
Jeff