এই সমস্যায়, আমাদের তিনটি সংখ্যা দেওয়া হয়েছে, যোগফল S, মৌলিক P এবং N। আমাদের কাজ হল P এর থেকে বড় সমস্ত N মৌলিক সংখ্যা খুঁজে বের করা যার যোগফল S এর সমান।
আমাদের সমস্যা বোঝার জন্য একটি উদাহরণ নেওয়া যাক
ইনপুট:N =2, P =5, S =18 আউটপুট:7 11 ব্যাখ্যা:মৌলিক সংখ্যা 5 :7 11 13 সমষ্টি =7 + 11 =18 থেকে বড়এই সমস্যাটি সমাধান করার জন্য, আমাদের P এবং S এর মধ্যে সমস্ত মৌলিক সংখ্যা খুঁজে বের করতে হবে। তারপর N মৌলিক সংখ্যাগুলি খুঁজে বের করতে হবে যার যোগফল S পর্যন্ত হবে। এর জন্য আমরা ব্যাকট্র্যাকিং ব্যবহার করব।
আমাদের সমাধানের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম
উদাহরণ
#include#include #include namespace ব্যবহার করে std;vector set;vector primeNo;bool isPrimeNumber(int x) { int sqroot =sqrt(x); bool flag =সত্য; যদি (x ==1) মিথ্যা ফেরত দেয়; for (int i =2; i <=sqroot; i++) যদি (x % i ==0) মিথ্যা ফেরত দেয়; রিটার্ন true;} void printPrimes() { int length =set.size(); জন্য (int i=0; i<দৈর্ঘ্য; i++) cout< S || index ==primeNo.size()) রিটার্ন; set.push_back(primeNo[index]); প্রাইমসাম জেনারেট করুন(টোটাল+প্রাইম নং[ইনডেক্স], এন, এস, ইনডেক্স+1); set.pop_back(); (int i =P+1; i <=S; i++) { যদি (ইসপ্রিম সংখ্যা(i) ) primeNo.push_back(i); } if (primeNo.size() আউটপুট
সমষ্টি =23 সহ 3 থেকে বড় 3টি মৌলিক সংখ্যা হল :5 7 11