हमें सकारात्मक पूर्णांकों की एक सरणी दी गई है और कार्य दी गई सरणी में मिश्रित तत्वों की गिनती और योग की गणना करना है।
मिश्रित संख्याएं क्या हैं
दिए गए पूर्णांकों के समूह से, जो संख्याएं अभाज्य नहीं हैं उन्हें मिश्रित संख्याएं कहा जाता है सिवाय 1 के जो न तो मिश्रित है और न ही अभाज्य बल्कि यह एक इकाई संख्या है। तो, यह स्पष्ट रूप से कहा गया है कि एक संख्या या तो अभाज्य हो सकती है या मिश्रित सिवाय संख्या 1 के।
100 तक की मिश्रित संख्याएं नीचे दी गई हैं -
4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 30, 32, 33, 34, 35, 36, 38, 39, 40, 42, 44, 45, 46, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 60, 62, 63, 64, 65, 66, 68, 69, 70, 72, 74, 75, 76, 77, 78, 80, 81, 82, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100
उदाहरण के लिए
इनपुट - array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} आउटपुट - मिश्रित संख्याओं की कुल गिनती: 5 मिश्रित संख्याओं का योग: 37
व्याख्या - 4, 6, 8, 9, 10 दी गई सरणी में मौजूद मिश्रित संख्याएं हैं। इसलिए, उनकी गिनती 5 है और उनका योग 4+6+8+9+10 = 37 है
इनपुट - array[] = {1, 2, 3, 4, 5} आउटपुट - मिश्रित संख्याओं की कुल गिनती: 1 मिश्रित संख्याओं का योग: 4
व्याख्या - 4 दी गई सरणी में मौजूद एकमात्र मिश्रित संख्या है। इसलिए, उनकी गिनती 1 है और उनका योग 4 है
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण &miuns;
सकारात्मक पूर्णांकों की सरणी इनपुट करें
इसका आकार गणना करें
मिश्रित संख्याओं का योग संग्रहीत करने के लिए चर sum को आरंभ करें
सरणी में मौजूद अधिकतम मान को एक चर में संग्रहीत करें
अधिकतम मान तक अभाज्य संख्याओं की गणना करें
पूरी सरणी को पार करें और जांचें कि संख्या अभाज्य है या नहीं। यदि संख्या अभाज्य नहीं है तो यह मिश्रित संख्या होगी और यदि यह है, तो मिश्रित संख्या की गिनती को 1 से बढ़ाएं और इसके मान को योग में जोड़ें
उदाहरण
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// मिश्रित संख्याओं की गिनती खोजने और लौटाने के लिए फंक्शन
int compcount(int ar[], int num, int* sum) {
// सरणी के सबसे बड़े तत्व को संग्रहीत करना
int max_val = *max_element(ar, ar + num);
// अधिकतम मान से कम या बराबर सभी अभाज्य संख्याओं को खोजने के लिए सिव का उपयोग
// एक बूलियन सरणी "prime[0..n]" बनाएं। एक
// मान prime[i] में अंततः false होगा
vector<bool> pr(max_val + 1, true);
// अभाज्य के लिए 0 और 1 के मान को
// true पर सेट करना।
pr[0] = true;
pr[1] = true;
for (int p = 2; p * p <= max_val; p++) {
// यदि prime[p] बदला नहीं गया है, तो
// यह एक अभाज्य संख्या है
if (pr[p] == true) {
// p के सभी गुणकों को अपडेट करें
for (int i = p * 2; i <= max_val; i += p) {
pr[i] = false;
}
}
}
// सभी मिश्रित संख्याओं को गिनें
// सरणी arr[] में
int ans = 0;
for (int i = 0; i < num; i++) {
if (!pr[ar[i]]) {
ans++;
*sum = *sum + ar[i];
}
}
return ans;
}
// ड्राइवर कोड
int main() {
int ar[] = {1, 2, 3, 4, 5};
int num = sizeof(ar) / sizeof(ar[0]);
int sum = 0;
cout << "Count of Composite Numbers = " << compcount(ar, num, &sum);
cout << "\nSum of Composite Numbers = " << sum;
return 0;
}
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
Count of Composite Numbers = 1 Sum of Composite Numbers = 4