এই সমস্যায়, আমাদের দুটি সংখ্যা a এবং b এবং একটি পূর্ণসংখ্যা বাউন্ড দেওয়া হয়েছে এবং আমাদের বাইন্ডিংয়ের চেয়ে কম সমস্ত মান প্রিন্ট করতে হবে যা a এবং b এর বর্গের সমষ্টি। .
Bound >= ai + bj
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক -
Input: a=2, b=3, bound=8 Output: 2 3 4 5 7
এই সমস্যাটি সমাধান করার জন্য, আমরা 0 থেকে i এবং j দুটি ভেরিয়েবল ব্যবহার করে নেস্টেড লুপ ব্যবহার করব। বাইরের লুপের শেষ অবস্থা থাকবে xi =bound এবং ভিতরের লুপের শেষ অবস্থা থাকবেxi + yj> bound . অভ্যন্তরীণ লুপের প্রতিটি পুনরাবৃত্তির জন্য, আমরা একটি সাজানো তালিকায় xi + yi-এর মান সংরক্ষণ করব যাতে এই ধরনের সমস্ত মান রয়েছে। এবং তারপর শেষে তালিকার সমস্ত মান প্রিন্ট করুন।
উদাহরণ
আমাদের সমাধানের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম -
#include <bits/stdc++.h> using namespace std; void powerSum(int x, int y, int bound) { set<int> sumOfPowers; vector<int> powY; int i; powY.push_back(1); for (i = y; i < bound; i = i * y) powY.push_back(i); i = 0; while (true) { int powX = pow(x, i); if (powX >= bound) break; for (auto j = powY.begin(); j != powY.end(); ++j) { int num = powX + *j; if (num <= bound) sumOfPowers.insert(num); else break; } i++; } set<int>::iterator itr; for (itr = sumOfPowers.begin(); itr != sumOfPowers.end(); itr++) { cout<<*itr <<" "; } } int main() { int x = 2, y = 3, bound = 25; cout<<"Sum of powers of "<<x<<" and "<<y<<" less than "<<bound<<" are :\n"; powerSum(x, y, bound); return 0; }
আউটপুট
Sum of powers of 2 and 3 less than 25 are − 2 3 4 5 7 9 10 11 13 17 19 25