मान लीजिए कि हमारे पास एक संख्या A है। हमें A को एक पंक्ति में n बार जोड़कर बड़ी संख्या X उत्पन्न करनी है और X modulo m का मान ज्ञात करना है।
इसलिए, यदि इनपुट A =15 n =3 m =8 जैसा है, तो आउटपुट 3 होगा, क्योंकि संख्या x 151515 होगी, और 151515 mod 8 =3 होगी।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- यदि A, 0 के समान है, तो
- वापसी 0
- एक:=ए
- c:=A में अंकों की संख्या
- सी:=10^सी
- d:=c-1
- newmod:=d*m
- वैल:=(सी ^ एन मॉड न्यूमॉड) -1
- वैल:=(वैल + न्यूमॉड) मॉड न्यूमॉड
- एक:=(एक * वैल) मॉड न्यूमॉड
- (ए / डी) का रिटर्न फ्लोर
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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