मान लीजिए हमारे पास एक संख्या A है। हमें A को n बार पंक्ति में जोड़कर एक बड़ी संख्या X उत्पन्न करनी है और X मॉड्यूलो m का मान खोजना है।
तो, यदि इनपुट A = 15, n = 3, m = 8 है, तो आउटपुट 3 होगा, क्योंकि संख्या x 151515 होगी, और 151515 मॉड 8 = 3।
इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:
- यदि A, 0 के समान है, तो
- 0 लौटाएं
- an:= A
- c:= A में अंकों की संख्या
- c:= 10^c
- d:= c-1
- newmod := d*m
- val := (c ^ n mod newmod) -1
- val :=(val + newmod) mod newmod
- an :=(an * val) mod newmod
- an / d का फ्लोर लौटाएं
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
def solve(A, n, m): if A == 0: return 0 an=A c=len(str(A)) c=10**c d=c-1 newmod = d*m val = pow(c,n,newmod)-1 val = (val+newmod) % newmod an = (an*val) % newmod return an // d A = 15 n = 3 m = 8 print(solve(A, n, m))
इनपुट
15, 3, 8
आउटपुट
3