इस समस्या में, हमें एक विषम संख्या N दी जाती है। हमारा कार्य एक विषम संख्या को अभाज्य संख्याओं के योग के रूप में व्यक्त करना है।
संख्या को व्यक्त करते समय अधिकतम तीन अभाज्य संख्याएँ हो सकती हैं।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट: एन =55
आउटपुट: 53 + 2
समाधान दृष्टिकोण:
विषम संख्या को अभाज्य संख्याओं के योग के रूप में दर्शाया जा सकता है। इन अभाज्य संख्याओं को ध्यान में रखते हुए हमारे पास तीन मामले हैं।
मामला 1: यदि n एक अभाज्य संख्या है, तो इसे एक अभाज्य संख्या के योग के रूप में दर्शाया जाता है n .
मामला 2: यदि (n - 2) एक अभाज्य संख्या है, तो इसे दो अभाज्य संख्याओं के योग के रूप में दर्शाया जाता है n-2 और 2 ।
केस 3: ( n - 3 ) एक सम संख्या है जिसे गोल्डबैक की अनुमान पद्धति का उपयोग करके दो अभाज्य संख्याओं के योग के रूप में दर्शाया जा सकता है जिसमें हम जाँच करेंगे कि क्या कोई संख्या A अभाज्य है और संख्या {(n-3) - A } भी अभाज्य है तो इसे प्रिंट करें।
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,
उदाहरण
#include <iostream> using namespace std; bool isPrime(int x) { if (x == 0 || x == 1) return false; for (int i = 2; i * i <= x; ++i) if (x % i == 0) return false; return true; } void primeAsSumofPrime(int n) { if (isPrime(n) ) cout<<n; else if (isPrime(n - 2)) cout<<"2 "<<"+ "<<(n - 2); else{ cout<<"3 "<<"+ "; n -= 3; for (int i = 0; i < n; i++) { if (isPrime(i) && isPrime(n - i)) { cout<<i<<" + "<<(n - i); break; } } } } int main() { int n = 561; cout<<"The number "<<n<<" expressed as sum of primes is "; primeAsSumofPrime(n); return 0; }
आउटपुट -
The number 561 expressed as sum of primes is 3 + 11 + 547