इस समस्या में, हमें एक संख्या n दी गई है। हमारा कार्य उन अधिकतम अभाज्य संख्याओं की गिनती ढूंढना है जिनका योग दिए गए N के बराबर हो।
यहां, हम अधिकतम अभाज्य संख्याएं ढूंढेंगे जिन्हें जोड़ने पर वह संख्या के बराबर होंगी।
अभाज्य संख्याएं वे संख्याएं हैं जिन्हें केवल स्वयं या एक से विभाजित किया जा सकता है।
आइए एक उदाहरण लेते हैं समस्या को समझने के लिए −
इनपुट − N = 9
आउटपुट − 4
व्याख्या −
9 को अभाज्य संख्याओं के योग के रूप में निम्न तरीकों से दर्शाया जा सकता है: 2, 2, 2, 3 3, 3, 3 2, 2, 5 2, 7 इनमें से अधिकतम अभाज्य संख्याओं की संख्या 4 है।
उपयोग की गई अभाज्य संख्याओं की अधिकतम संख्या इस बात पर आधारित होगी कि योग बनाने के लिए कितनी छोटी अभाज्य संख्याओं को जोड़ा जा सकता है।
तो, सबसे छोटी अभाज्य संख्या 2 है। और अगली बड़ी अभाज्य संख्या 3 है, जो विषम है।
तो, काउंट अधिकतम होगा यदि हम योग की गणना करते समय केवल 2 और 3 का उपयोग करें। इस आधार पर हम समस्या को दो मामलों में विभाजित कर सकते हैं −
केस 1 − यदि N सम है, तो योग में सभी अभाज्य संख्याएं 2 होंगी। तो, काउंट n/2 होगा।
केस 2 − यदि N विषम है, तो योग में सभी अभाज्य संख्याएं 2 होंगी सिवाय एक के जो 3 होगी। तो, काउंट (n-1/2) होगा।
उदाहरण
C++ में दिए गए N के बराबर योग वाली अधिकतम अभाज्य संख्याएं खोजने का प्रोग्राम
#include <iostream> using namespace std; int maxPrimeCount(int n){ // विषम मामले के लिए परिणाम (n-1)/2 के समान होगा return n / 2; } int main(){ int n = 9; cout<<"The maximum number of primes whose sum is equal to "<<n<<" is "<<maxPrimeCount(n); return 0; }आउटपुट
The maximum number of primes whose sum is equal to 9 is 4