Modulus হিসাব করার ছোট্ট একটু চিন্তা ভাবনা।
আসো Modulus (%) বের করি। ধরো তোমাকে ২ টা সংখ্যা a আর b দেওয়া আছে। তোমাকে (a+b)%c বের করতে হবে। যেখানে a,b,c এর মান 2 ^ 64 - 1 অব্দি হতে পারে যা c/c++ সর্বচ্চ মান (মানে unsigned long long int এ। এর চেয়ে বেশি ভ্যালু হলে আমরা সেটা String দিয়ে হ্যান্ডেল করি)। কি ভাবছ? অনেক সহজেই ans=(a+b)%c ; বের করলেই হয়ে গেলো তাইনা ? আচ্ছা ধরি, a= 1844674407370955161 4 , b= 100 , ans = ( 184467440737095516 1 4 + 100 ) % 18446744073709551615 [যেখানে c= 2 ^ 64 - 1 ] এভাবে বের করা কি সম্ভব?, আসলে কি হবে এখানে ? ( 184467440737095516 1 4 + 100 ) যোগ করলে overflow হবে। ( 2 ^ 64 - 1 এর চেয়ে বেশি হয়ে যাবে যা unsigned long long int এও আটানো সম্ভব হবে না ), যদি যোগ-ই করতে না পারি তাহলে কেমনে mod c (%c ) বের করবো? যাক তাহলে ans = (a+b)%c; সমাধান কাজ করলো না। আচ্ছা আরেকটু ভাবি, উপরের মতো করে যদি না হয় তাহলে আমাদের পরবর্তি ধাপ কি হতে পারে? উমম,! আমরা জানিতো (a+b)%c থাকলে আমরা এটাকে (a%c ...