मान लीजिए कि हमारे पास एक संख्या 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