इस समस्या में, हमें एक संख्या n दी गई है। हमारा काम C++ में 1 से n के बीच की अभाज्य संख्याओं का योग ज्ञात करने के लिए एक कार्यक्रम बनाना है ।
अभाज्य संख्याएँ वे संख्याएँ होती हैं जिनमें केवल दो गुणनखंड होते हैं। वे संख्या हैं और 1.
समस्या को समझने के लिए एक उदाहरण लेते हैं
इनपुट
n = 15
आउटपुट
41
स्पष्टीकरण
1 से 15 के बीच की अभाज्य संख्याएँ 2, 3, 5, 7, 11, 13 हैं। योग 41 है।
समाधान दृष्टिकोण
समस्या को हल करने का एक आसान तरीका यह है कि एक लूप का उपयोग करें और जाँच करें कि क्या प्रत्येक संख्या एक अभाज्य संख्या है या नहीं और उन सभी को जोड़ दें जो अभाज्य हैं।
यह जाँचने के लिए कि क्या कोई संख्या i एक अभाज्य संख्या है। हम i से i/2 तक लूप करेंगे। जाँच करें कि क्या कोई संख्या है जो i को विभाजित कर सकती है। यदि हाँ, तो संख्या एक अभाज्य संख्या नहीं है।
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम
उदाहरण
#include <iostream> using namespace std; bool isPrime(int n){ for(int i = 2; i < n/2; i++){ if(n%i == 0){ return false; } } return true; } int findPrimeSum(int n){ int sumVal = 0; for(float i = 2; i <= n; i++){ if(isPrime(i)) sumVal += i; } return sumVal; } int main(){ int n = 15; cout<<"The sum of prime number between 1 to "<<n<<" is "<<findPrimeSum(n); return 0; }
आउटपुट
The sum of prime number between 1 to 15 is 45
अभाज्य संख्याओं को खोजने के लिए और आवश्यक योग खोजने के लिए उन्हें जोड़ने के लिए एक प्रभावी समाधान एराटोस्थनीज की छलनी का उपयोग कर रहा है।
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम
उदाहरण
#include <iostream> using namespace std; int findPrimeSum(int n){ int arr[n+1] = {0}; for (int i = 2; i < n; i++) { for (int j = i * i; j < n; j+=i) { arr[j - 1] = 1; } } int sumVal; for (int i = 2; i < n; i++) { if (arr[i - 1] == 0) sumVal += i; } return sumVal; } int main(){ int n = 15; cout<<"The sum of prime number between 1 to "<<n<<" is "<<findPrimeSum(n); return 0; }
आउटपुट
The sum of prime number between 1 to 15 is 41