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

C++ में सिंगल लिंक्ड लिस्ट के न्यूनतम और अधिकतम प्राइम नंबर।

समस्या कथन

n धनात्मक पूर्णांकों की लिंक की गई सूची को देखते हुए। हमें न्यूनतम और अधिकतम मान वाली अभाज्य संख्या ज्ञात करनी है।

यदि दी गई सूची है -

10 -> 4 -> 1 -> 12 -> 13 -> 7 -> 6 -> 2 -> 27 -> 33
then minimum prime number is 2 and maximum prime number is 13

एल्गोरिदम

1. Find maximum number from given number. Let us call it maxNumber
2. Generate prime numbers from 1 to maxNumber and store them in a dynamic array
3. Iterate linked list and use dynamic array to find prime number with minimum and maximum value

उदाहरण

#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 से विभाज्य है

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

  1. C++ में सिंगल लिंक्ड लिस्ट में सभी प्राइम नोड्स का उत्पाद

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

  1. C++ प्रोग्राम सिंगल लिंक्ड लिस्ट को लागू करने के लिए

    सिंगल लिंक्ड लिस्ट एक प्रकार की डेटा संरचना है जो नोड्स से बनी होती है जो सेल्फ रेफरेंशियल स्ट्रक्चर का उपयोग करके बनाई जाती है। इनमें से प्रत्येक नोड में दो भाग होते हैं, अर्थात् डेटा और अगली सूची नोड का संदर्भ। संपूर्ण लिंक की गई सूची तक पहुँचने के लिए केवल पहली सूची नोड के संदर्भ की आवश्यकता होती