কম্পিউটার টিউটোরিয়াল

C++-এ স্ট্রিংয়ে প্রাইম ASCII মানবाले অক্ষর গণনা

আমাদের যেকোনো দৈর্ঘ্যের একটি স্ট্রিং দেওয়া আছে যাতে বড় এবং ছোট হাতের অক্ষর রয়েছে, এবং আমাদের কাজ হল সেই অক্ষরগুলির সংখ্যা গণনা করা যাদের ASCII মান প্রাইম।

বড় হাতের অক্ষর [A-Z]-এর ASCII মান ৬৫ থেকে ৯০ এবং ছোট হাতের অক্ষর [a-z]-এর ASCII মান ৯৭ থেকে ১২২।

উদাহরণ

ইনপুট string str = 'Aebg' আউটপুট গণনা: 2

ব্যাখ্যা − A-এর ASCII মান ৬৫ যা প্রাইম নয় তাই গণনা হবে না, e-এর ১০১ যা প্রাইম তাই গণনা হবে, b-এর ৬৬ যা প্রাইম নয়, g-এর ১০৩ যা প্রাইম তাই গণনা হবে। মোট ২টি অক্ষরের ASCII মান প্রাইম।

ইনপুট − string str = 'GOXFH' আউটপুট − গণনা: 2

ব্যাখ্যা − G-এর ASCII ৭১ (প্রাইম), O-এর ৭৯ (প্রাইম), X-এর ৮৮ (প্রাইম নয়), F-এর ৭০ (প্রাইম নয়), H-এর ৭২ (প্রাইম নয়)। মোট ২টি অক্ষরের ASCII মান প্রাইম।

প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • স্ট্রিং ইনপুট নিয়ে str ভেরিয়েবলে সংরক্ষণ করুন
  • length() ফাংশন দিয়ে স্ট্রিং দৈর্ঘ্য গণনা করুন
  • প্রাইম মান চেক করার একটি ফাংশন ঘোষণা করুন যা প্রতিটি অক্ষরের সাথে মিলিয়ে চেক করবে
  • i = 0 থেকে স্ট্রিং দৈর্ঘ্য পর্যন্ত লুপ ট্রাভার্স করুন
  • লুপের ভিতরে চেক করুন ট্রাভার্স করা অক্ষরের ASCII মান প্রাইম কিনা। যদি প্রাইম হয় তবে count 1 বৃদ্ধি করুন
  • মোট count মান ফেরত দিন
  • ফলাফল প্রিন্ট করুন

উদাহরণ কোড

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

#define max_val 257

// স্ট্রিংতে প্রাইম অক্ষর খুঁজে বের করার ফাংশন
int countprime(string str) {
    // SIEVE ব্যবহার করে 'max_val'-এর চেয়ে ছোট বা সমান প্রাইম সংখ্যা খুঁজুন
    // একটি বুলিয়ান অ্যারে "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;
}

// main ফাংশন
int main() {
    string str = "tutorialspoint";
    // প্রয়োজনীয় উত্তর প্রিন্ট
    cout << "count is: " << countprime(str);
    return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি রান করি তবে নিচের আউটপুট পাব −

count is: 1
  1. C++-এ স্ট্রিংয়ের ক্যারেক্টার রিয়ারেঞ্জ করুন যাতে দুটি আডজেসেন্ট ক্যারেক্টার একই নাও হয়

  2. টেক্সট স্ট্রিমে অ্যানাগ্রামের উপস্থিতির সংখ্যা গণনা (C++)

  3. N-এর ডিজিট দিয়ে ASCII মান বানানো যাবে এমন অক্ষরের সংখ্যা (C++)

  4. বাইনারি ট্রিতে স্বরবর্ণ বিশিষ্ট স্ট্রিং ওজন সম্পন্ন নোড গণনা C++-এ