Originally Posted by
tabstop
If you multiply all the factors of 999 together, you get 996,005,996,001 (which not coincidentally is 999^4); except, of course, all math internally is done modulo 2^32 -- hence the number works out to 3,868,550,625. If 3,868,550,625 is interpreted as a signed integer, you get -426,416,671. 999^4 is a little under 2^40, so if you were using a 64-bit data type you'd be fine (for this number, not in general).