>>4 Java
http://ideone.com/sPM7Ao
書いててよくわからんくなった…
ローカルで1000桁計算した結果がBigInteger使った場合と同じになるから多分あっていると思う