দুই পূর্ণসংখ্যা A এবং B দেওয়া থাকলে, 2^(2^A) % B এর মান বের করতে হবে। রিকারসিভ ফাংশন দিয়ে সমাধান করা যায়।
পদ্ধতি
- বেস কেস: A == 1 হলে 2^(2^1) % B = 4 % B রিটার্ন করুন।
- রিকারসিভ স্টেপ: solve(A-1, B) কল করুন, ফলাফল = result² % B।
- মডুলার এক্সপোনেনশিয়েশনের বৈশিষ্ট্য ব্যবহার করা হয়েছে।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
long long solve(long long A, long long B) {
if (A == 1) return 4 % B;
long long res = solve(A-1, B);
return (res * res) % B;
}
int main() {
long long A = 37, B = 467;
cout << solve(A, B) << endl;
return 0;
}
আউটপুট
113