मान लीजिए हमारे पास दो संख्याएं n और m हैं। हमें n संख्या में 1 को 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