মান লেট n এবং m দুটি সংখ্যা। আমাদের n সংখ্যক ১কে m দিয়ে ভাগ করে অবশিষ্ট বের করতে হবে।
তাহলে, যদি ইনপুট হয় n = 4 m = 27, তবে আউটপুট হবে 4, কারণ 1111 mod 27 = 4।
এটি সমাধান করতে, আমরা নিচের পদক্ষেপগুলো অনুসরণ করব −
একটি ফাংশন util() সংজ্ঞায়িত করুন। এটি x, n, m নিবে
- y := 1
- যখন n > 0, করুন
- যদি n বিজোড় হয়, তবে
- y := (y * x) mod m
- x := (x * x) mod m
- n := floor of n/2
- যদি n বিজোড় হয়, তবে
- y রিটার্ন করুন
মেইন মেথড থেকে floor of (util(10, n, 9 * m) / 9) রিটার্ন করুন
উদাহরণ
বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশন দেখুন −
def util(x, n, m) : y = 1 while n > 0 : if n & 1 : y = (y * x) % m x = (x * x) % m n >>= 1 return y def solve(n, m): return util(10, n, 9 * m) // 9 n = 4 m = 27 print(solve(n, m))
ইনপুট
4, 27
আউটপুট
4