ধরুন আমরা f(x) =(x^6 + x^2 + 9894845) % 971 এর মতো ফাংশন দিয়েছি, এখন x এর একটি প্রদত্ত মানের জন্য, আমাদের মানটি খুঁজে বের করতে হবে f(x) এর।
সুতরাং, যদি ইনপুট 5 এর মত হয়, তাহলে আউটপুট হবে 469
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি ফাংশন power_mod() সংজ্ঞায়িত করুন, এটি বেস, এক্সপোনেন্ট, মডুলাস,
নেবে -
বেস :=বেস মোড মডুলাস
-
ফলাফল :=1
-
যখন সূচক> 0, do −
-
যদি সূচকটি বিজোড় হয়, তাহলে −
-
ফলাফল :=(ফলাফল * বেস) মোড মডুলাস
-
-
ভিত্তি :=(বেস * বেস) মোড মডুলাস
-
সূচক =সূচক /2
-
-
ফেরত ফলাফল
-
প্রধান পদ্ধতি থেকে নিম্নলিখিতগুলি করুন -
-
ফেরত পাওয়ার_মোড(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