मान लीजिए कि हमारे पास AP श्रृंखला का पहला पद (A) और सार्व अंतर (d) है, और हमारे पास एक अभाज्य संख्या P भी है, हमें पहले तत्व की स्थिति ज्ञात करनी है दिए गए AP में जो दी गई अभाज्य संख्या P का गुणज है।
इसलिए, यदि इनपुट A =3, D =4, P =5 जैसा है, तो आउटपुट 3 होगा क्योंकि दिए गए AP का चौथा पद अभाज्य संख्या 5 का गुणज है। तो, पहला पद =3, दूसरा पद =3+4 =7, तीसरा पद =3+2*4 =11 और चौथा पद =3+3*4 =15.
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
एक फ़ंक्शन को परिभाषित करें get_pow() । इसमें x, y, p
. लगेगा -
उत्तर :=1
-
एक्स:=एक्स मॉड पी
-
जबकि y> 0, करें
-
अगर y और 1 गैर-शून्य है, तो
-
उत्तर:=(Ans * x) मॉड पी
-
-
y :=y/2
-
x :=(x * x) मॉड पी
-
-
वापसी उत्तर
-
मुख्य विधि से, निम्न कार्य करें -
-
ए:=एक मॉड पी
-
डी:=डी मॉड पी
-
यदि A, 0 के समान है, तो
-
वापसी 0
-
-
अन्यथा जब D, 0 के समान हो, तब
-
वापसी -1
-
-
अन्यथा,
-
एक्स:=get_pow (डी, पी - 2, पी)
-
वापसी(एक्स *(पी - ए)) मॉड पी
-
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def get_pow(x, y, p) : ans = 1 x = x % p while y > 0 : if y & 1 : ans = (ans * x) % p y = y >> 1 x = (x * x) % p return ans def get_nearest(A, D, P) : A %= P D %= P if A == 0 : return 0 elif D == 0 : return -1 else : X = get_pow(D, P - 2, P) return (X * (P - A)) % P A = 3 D = 4 P = 5 print(get_nearest(A, D, P))
इनपुट
A = 3 D = 4 P = 5
आउटपुट
3