Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में सिंगली लिंक्ड लिस्ट में न्यूनतम और अधिकतम अभाज्य संख्या


समस्या कथन

n पॉजिटिव इंटीजर्स की एक लिंक्ड लिस्ट दी गई है। हमें न्यूनतम और अधिकतम मान वाली अभाज्य संख्या ढूंढनी है।

यदि दी गई लिस्ट है -

10 -> 4 -> 1 -> 12 -> 13 -> 7 -> 6 -> 2 -> 27 -> 33 तो न्यूनतम अभाज्य संख्या 2 है और अधिकतम अभाज्य संख्या 13 है

एल्गोरिदम

1. दी गई संख्या से अधिकतम नंबर ढूंढें। इसे maxNumber कहें 2. 1 से maxNumber तक अभाज्य संख्याएं जेनरेट करें और उन्हें डायनामिक ऐरे में स्टोर करें 3. लिंक्ड लिस्ट पर इटरेट करें और डायनामिक ऐरे का उपयोग करके न्यूनतम और अधिकतम मान वाली अभाज्य संख्या ढूंढें

उदाहरण

#include <iostream> #include <vector> #include <climits> #include <algorithm> #include <list> #define SIZE(arr) (sizeof(arr) / sizeof(arr[0])) using namespace std; void printMinAndMaxPrimes(list<int> intList){    int maxNumber = *max_element(intList.begin(),    intList.end());    vector<bool> primes(maxNumber + 1, true);    primes[0] = primes[1] = false;    for (int p = 2; p * p <= maxNumber; ++p) {       if (primes[p]) {          for (int i = p * 2; i <= maxNumber; i +=p) {             primes[i] = false;          }       }    }    int minPrime = INT_MAX;    int maxPrime = INT_MIN;    for (auto it = intList.begin(); it != intList.end(); ++it) {       if (primes[*it]) {          minPrime = min(minPrime, *it);          maxPrime = max(maxPrime, *it);       }    }    cout << "Prime number of min value = " << minPrime << "\n";    cout << "Prime number of max value = " << maxPrime << "\n"; } int main(){    int arr [] = {10, 4, 1, 12, 13, 7, 6, 2, 27, 33};    list<int> intList(arr, arr + SIZE(arr));    printMinAndMaxPrimes(intList);    return 0; }

आउटपुट

जब आप उपरोक्त प्रोग्राम को कंपाइल और एक्जीक्यूट करते हैं। यह निम्नलिखित आउटपुट जनरेट करता है -

Prime number of min value = 2 Prime number of max value = 13

  1. C++ में दिए गए नंबर k से विभाज्य लिंक्ड लिस्ट के अधिकतम और न्यूनतम एलिमेंट C++ में दिए गए नंबर k से विभाज्य लिंक्ड लिस्ट के अधिकतम और न्यूनतम एलिमेंट

    लिंक्ड लिस्ट एक रैखिक डेटा संरचना है जिसमें एलिमेंट्स पॉइंटर्स के माध्यम से जुड़े होते हैं। लिंक्ड लिस्ट के प्रत्येक एलिमेंट या नोड में एक डेटा भाग और लिंक होता है, या हम कह सकते हैं कि क्रम में अगले एलिमेंट का पॉइंटर होता है। एलिमेंट्स मेमोरी में नॉन-कंटीगुअस स्थान ले सकते हैं। हमें एक सिंगली लिं

  1. C++ में एकल लिंक्ड सूची में सभी अभाज्य नोड्स का गुणनफल C++ में एकल लिंक्ड सूची में सभी अभाज्य नोड्स का गुणनफल

    n नोड्स दिए गए हैं और कार्य लिंक्ड सूची में सभी अभाज्य नोड्स का गुणनफल प्रिंट करना है। अभाज्य नोड्स वे हैं जिनके स्थान मान अभाज्य होंगे। इनपुट 10 20 30 40 50 आउटपुट 4,00,000 व्याख्या 10 सूचकांक मान 1 पर है जो गैर-अभाज्य है इसलिए इसे छोड़ दिया जाएगा। 20 पर जाएं जिसका सूचकांक मान 2 है जो एक अभाज्य

  1. - C++ प्रोग्राम: सिंगली लिंक्ड लिस्ट कार्यान्वयन

    सिंगली लिंक्ड लिस्ट प्रत्येक नोड में डेटा और अगले नोड का संदर्भ होता है। अंतिम नोड NULL इंगित करता है। केवल head से पूरी सूची एक्सेस की जा सकती है। C++ प्रोग्राम उदाहरण next; } } int main() { insert(3); insert(1); insert(7); insert(2); insert(9); cout << The link