Computing very large numbers is done with the use of Fast Fourier Transform (FFT).
Small correction: multiplying very large numbers is done with the use of the FFT, addition/subtraction not. That's because multiplication is very similar to convolution (try to multiply to numbers on paper and you'll see its pretty much the same as convolution of the numbers represented as arrays of digits), and convolution in the time domain is equal to pointwise multiplication in the frequency domain. For numbers with more than a certain amount of digits going through the FFT is actually faster. Furthermore I suppose you're referring to the Gauss-Legendre (http://en.wikipedia.org/wiki/Gaussâ"Legendre_algorithm) algorithm. Its difficulty is not in multiplication, because that can be done relatively fast using the FFT, but in the fact that there's a square root in it. If you approximate the square root wrong, this error will propagate through your iterations, so you must be very careful about that. Anyway, cool stuff!
"It's the best thing since professional golfers on 'ludes." -- Rick Obidiah