एक समस्या पर चर्चा करें जहाँ हमें एक संख्या N दी गई है, और हमें इस संख्या को अधिकतम अभाज्य संख्याओं के योग में विभाजित करने की आवश्यकता है, उदाहरण के लिए
Input: N = 7 Output: 2 2 3 Explanation: 7 can be represented as the sum of two 2’s and a 3 which are the maximum possible prime numbers. Input : N = 17 Output: 2 2 2 2 2 2 2 3
समाधान खोजने के लिए दृष्टिकोण
किसी संख्या को अभाज्य संख्याओं में निरूपित करने के लिए, हम एक अभाज्य संख्या को N से घटा सकते हैं और अभाज्य संख्या के अंतर की जाँच कर सकते हैं। यदि अंतर अभाज्य है, तो हम N को दो अभाज्य संख्याओं के योग के रूप में निरूपित कर सकते हैं।
लेकिन यहाँ, हमें अभाज्य संख्याओं की अधिकतम संख्या ज्ञात करनी है, और उसके लिए, हमें न्यूनतम अभाज्य संख्याएँ लेनी चाहिए, अर्थात, 2 और 3। हम 2 और 3 के योग से कोई भी संख्या बना सकते हैं।
-
सम की संख्या की जाँच करें; यदि यह सम है, तो इसे (N/2) 2 के योग से बनाया जा सकता है।
-
इसे एक तीन और [(N-3) / 2 ] 2 के विषम होने पर बनाया जा सकता है।
-
इस तरह, हम अधिकतम संख्या में अभाज्य संख्याओं के योग से N का प्रतिनिधित्व कर सकते हैं।
उदाहरण
#include <bits/stdc++.h> using namespace std; int main(){ int N = 7; // checking if N is odd, // If yes, then print 3 // and subtract 3 from N. if (N & 1 == 1) { cout << "3 +"; N -= 3; } // // keep subtracting and printing 2 // until N is becomes 0. while (N!=2) { cout << " 2 +"; N -= 2; } cout << " 2"; return 0; }
आउटपुट
3 + 2 + 2
निष्कर्ष
इस ट्यूटोरियल में, हमने एक संख्या को अभाज्य संख्याओं की अधिकतम संख्या के योग के रूप में निरूपित करने पर चर्चा की। हमने संख्याओं को 2 और 3 के योग के रूप में प्रस्तुत करके इस समस्या को हल करने के लिए एक सरल दृष्टिकोण पर चर्चा की। हमने इस समस्या के लिए C++ प्रोग्राम पर भी चर्चा की जिसे हम प्रोग्रामिंग भाषाओं जैसे C, Java, Python, आदि के साथ कर सकते हैं। हमें उम्मीद है कि आपको यह ट्यूटोरियल मददगार लगेगा।