اینکه میگی هم عدد صحیح باشه هم عدد بزرگ تناقض داره. باید حتماً از String استفاده کنی. همهی لایبریهایی که با اعداد بزرگ سر و کار دارند، اعداد رو به صورت رشته میگیرند.
اگه خودت بخوای بنویسی هم آخرش چیزی بهتر از GMP از آب در نمیاد. میتونی از پیادهسازی GMP یا لایبریهای سادهی مشابه ایده بگیری...