मान लीजिए कि हमने f(x) =(x^6 + x^2 + 9894845) % 971 जैसे फ़ंक्शन दिए हैं, अब x के दिए गए मान के लिए, हमें मान ज्ञात करना होगा f(x) का।
तो, अगर इनपुट 5 की तरह है, तो आउटपुट 469 होगा
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
एक फ़ंक्शन को परिभाषित करें power_mod(), यह आधार, घातांक, मापांक,
. लेगा -
आधार:=आधार मापांक
-
परिणाम:=1
-
जबकि घातांक> 0, करें −
-
यदि घातांक विषम है, तो -
-
परिणाम:=(परिणाम * आधार) मॉडुलस
-
-
आधार:=(आधार * आधार) मॉड मॉड्यूलस
-
घातांक =प्रतिपादक /2
-
-
वापसी परिणाम
-
मुख्य विधि से निम्न कार्य करें -
-
वापसी power_mod(n, 6, m)+power_mod(n, 2, m)) mod m + 355) mod m
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; typedef long long int lli; lli power_mod(lli base, lli exponent, lli modulus) { base %= modulus; lli result = 1; while (exponent > 0) { if (exponent & 1) result = (result * base) % modulus; base = (base * base) % modulus; exponent >>= 1; } return result; } int main(){ lli n = 654654, m = 971; cout<<(((power_mod(n, 6, m)+power_mod(n, 2, m))% m + 355)% m); }
इनपुट
84562
आउटपुट
450