एक समस्या पर चर्चा करें जहां हमें एक संख्या N दी गई है, और हमें इस संख्या को अधिकतम अभाज्य संख्याओं के योग में विभाजित करने की आवश्यकता है, उदाहरण के लिए:
इनपुट: N = 7 आउटपुट: 2 2 3 व्याख्या: 7 को दो 2 और एक 3 के योग के रूप में प्रस्तुत किया जा सकता है जो अधिकतम संभव अभाज्य संख्याएं हैं। इनपुट: N = 17 आउटपुट: 2 2 2 2 2 2 2 3
समाधान खोजने का दृष्टिकोण
किसी संख्या को अभाज्य संख्याओं में प्रस्तुत करने के लिए, हम N से एक अभाज्य संख्या घटा सकते हैं और अंतर की जांच कर सकते हैं कि क्या यह अभाज्य है। यदि अंतर अभाज्य है, तो हम N को दो अभाज्य संख्याओं के योग के रूप में प्रस्तुत कर सकते हैं।
लेकिन यहां, हमें अधिकतम संख्या में अभाज्य संख्याएं खोजनी हैं, और इसके लिए, हमें न्यूनतम अभाज्य संख्याएं लेनी चाहिए, यानी 2 और 3। हम किसी भी संख्या को 2 और 3 के योग से बना सकते हैं।
संख्या के सम होने की जांच करें; यदि यह सम है, तो इसे (N/2) 2 के योग से बनाया जा सकता है।
यदि यह विषम है, तो इसे एक 3 और [(N-3)/2] 2 के योग से बनाया जा सकता है।
इस तरह, हम N को अधिकतम संख्या में अभाज्य संख्याओं के योग द्वारा प्रस्तुत कर सकते हैं।
उदाहरण
#include <bits/stdc++.h>
using namespace std;
int main() {
int N = 7;
// जांचना कि N विषम है,
// यदि हां, तो 3 प्रिंट करें
// और N से 3 घटाएं।
if (N & 1 == 1) {
cout << "3 +";
N -= 3;
}
// // 2 घटाते और प्रिंट करते रहें
// जब तक N 0 न हो जाए।
while (N != 2) {
cout << " 2 +";
N -= 2;
}
cout << " 2";
return 0;
}
आउटपुट
3 + 2 + 2
निष्कर्ष
इस ट्यूटोरियल में, हमने किसी संख्या को अधिकतम संख्या में अभाज्य संख्याओं के योग के रूप में प्रस्तुत करने पर चर्चा की। हमने 2 और 3 के योग के रूप में संख्याओं को प्रस्तुत करके इस समस्या को हल करने के एक सरल दृष्टिकोण पर चर्चा की। हमने इस समस्या के लिए C++ प्रोग्राम पर भी चर्चा की जिसे हम C, Java, Python आदि प्रोग्रामिंग भाषाओं के साथ कर सकते हैं। आशा है कि आपको यह ट्यूटोरियल मददगार लगा होगा।