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

C++ में स्ट्रिंग में उन वर्णों की गिनती करें जिनके ASCII मान अभाज्य हैं


हमें किसी भी लंबाई की एक स्ट्रिंग दी गई है जिसमें अपरकेस और लोअरकेस दोनों अक्षर हैं और कार्य उन वर्णों की संख्या की गणना करना है जिनके ASCII मान अभाज्य हैं।

अपरकेस अक्षरों[A-Z] के ASCII मान 65 से शुरू होकर 90 तक होते हैं और लोअरकेस अक्षरों[a-z] के ASCII मान 97 से शुरू होकर 122 तक होते हैं।

उदाहरण के लिए

इनपुट string str = 'Aebg' आउटपुट गिनती: 2

व्याख्या - A का ASCII मान 65 है जो एक गैर-अभाज्य संख्या है इसलिए इसे नहीं गिना जाएगा, e का मान 101 है जो एक अभाज्य संख्या है इसलिए इसे गिना जाएगा, b का मान 66 है जो एक गैर-अभाज्य संख्या है इसलिए इसे नहीं गिना जाएगा और g का मान 103 है जो एक अभाज्य संख्या है इसलिए इसे गिना जाएगा। इसलिए, कुल मिलाकर 2 वर्ण हैं जिनके ASCII मान अभाज्य हैं।

इनपुट - string str = 'GOXFH' आउटपुट - गिनती: 2

व्याख्या - G का ASCII मान 71 है जो एक अभाज्य संख्या है इसलिए इसे गिना जाएगा, O का मान 79 है जो एक अभाज्य संख्या है इसलिए इसे गिना जाएगा, X का मान 88 है जो एक गैर-अभाज्य संख्या है इसलिए इसे नहीं गिना जाएगा, F का मान 70 है जो अभाज्य संख्या नहीं है इसलिए इसे नहीं गिना जाएगा और H का मान 72 है जो अभाज्य संख्या नहीं है इसलिए इसे नहीं गिना जाएगा। इसलिए, कुल मिलाकर 2 वर्ण हैं जिनके ASCII मान अभाज्य हैं।

नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण

  • स्ट्रिंग इनपुट करें और इसे str जैसे चर में संग्रहीत करें

  • length() फंक्शन का उपयोग करके स्ट्रिंग str की लंबाई की गणना करें जो स्ट्रिंग में स्पेस सहित अक्षरों की संख्या के अनुसार एक पूर्णांक मान लौटाएगा।

  • एक फंक्शन घोषित करें जो अभाज्य मान की गणना करेगा जिसे हम हर निर्धारित अक्षर के विरुद्ध जांचेंगे

  • लूप को i से 0 से शुरू करके स्ट्रिंग की लंबाई तक पार करें

  • लूप के अंदर, जांचें कि क्या पार किए गए वर्ण का ASCII मान अभाज्य है या नहीं। यदि यह अभाज्य है, तो count को 1 से बढ़ाएं अन्यथा मान को न बढ़ाएं।

  • count का कुल मान लौटाएं

  • परिणाम प्रिंट करें।

उदाहरण

#include <iostream>
#include <vector>
using namespace std;

#define max_val 257

// स्ट्रिंग में अभाज्य वर्ण खोजने के लिए फंक्शन
int countprime(string str) {
    // 'max_val' से कम या बराबर अभाज्य संख्याओं को खोजने के लिए SIEVE का उपयोग
    // एक बूलियन सरणी "prime[0..n]"। एक
    // मान prime[i] में अंततः false होगा
    // यदि i अभाज्य नहीं है, अन्यथा true।
    vector<bool> prime(max_val + 1, true);
    // 0 और 1 अभाज्य नहीं हैं
    prime[0] = false;
    prime[1] = false;
    for (int p = 2; p * p <= max_val; p++) {
        // यदि prime[p] बदला नहीं गया है, तो
        // यह एक अभाज्य संख्या है
        if (prime[p] == true) {
            // p के सभी गुणकों को अपडेट करना
            for (int i = p * 2; i <= max_val; i += p) {
                prime[i] = false;
            }
        }
    }
    int result = 0;
    // पूरी स्ट्रिंग को पार करना।
    for (int i = 0; i < str.length(); ++i) {
        if (prime[int(str[i])]) {
            result++;
        }
    }
    return result;
}

// मुख्य फंक्शन
int main() {
    string str = "tutorialspoint";
    // आवश्यक उत्तर प्रिंट करें
    cout << "count is: " << countprime(str);
    return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -

count is:1

  1. - C++ में एनाग्राम की घटनाओं की गिनती

    हमें एक टेक्स्ट स्ट्रीम और एक शब्द इनपुट के रूप में दिया गया है, और कार्य दिए गए टेक्स्ट स्ट्रीम में शब्द के एनाग्राम की घटनाओं की संख्या ढूंढना है। एनाग्राम एक शब्द से अक्षरों को पुनर्व्यवस्थित करके उत्पन्न होते हैं जो एक अलग शब्द या वाक्यांश बन जाता है जैसे New York Times में शब्दों के एनाग्राम Mo

  1. - C++ में N के अंकों से बनने वाले ASCII मान वाले वर्णमाला की गिनती

    एक लॉन्ग वेरिएबल दिया गया है जिसमें इनपुट के रूप में एक धनात्मक संख्या है। लक्ष्य उन वर्णमाला की गिनती ढूंढना है जिनके ASCII मान के अंक संख्या के अंकों में मौजूद हैं। संख्या से किन्हीं दो अंकों को चुनें और उन्हें इस तरह व्यवस्थित करें कि वे अंग्रेजी वर्णमाला का ASCII मान बनाएं। A-Z के ASCII मान 65 स

  1. C++ में उन नोड्स को गिनना जिनका वेटेड स्ट्रिंग स्वर रखता है C++ में उन नोड्स को गिनना जिनका वेटेड स्ट्रिंग स्वर रखता है

    स्ट्रिंग्स के वजन वाली एक बाइनरी ट्री दी गई है। लक्ष्य उन नोड्स की संख्या ढूंढना है जिनके वजन ऐसे हैं कि स्ट्रिंग में एक स्वर है। यदि वजन aer है तो इसमें स्वर a और e हैं इसलिए नोड गिना जाएगा। उदाहरण के लिए इनपुट मानों को इनपुट करने के बाद जो ट्री बनेगा वह नीचे दिया गया है: आउटपुट Count the nodes of