কম্পিউটার

একটি স্ট্রিং-এ অক্ষর গণনা করুন যার ASCII মান C++ এ প্রাইম


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

বড় হাতের অক্ষর [A-Z] এর ASCII মান 65 থেকে 90 পর্যন্ত শুরু হয় এবং ছোট হাতের অক্ষর [a-z] 97 থেকে 122 পর্যন্ত শুরু হয়।

উদাহরণস্বরূপ

Input string str = ‘Aebg’
Output count is: 2

ব্যাখ্যা − A-এর ASCII মান হল 65 যা একটি নন-প্রাইম সংখ্যা তাই এটি গণনা করা হবে না, e হল 101 যা একটি মৌলিক সংখ্যা তাই এটি গণনা করা হবে, b হল 66 যা একটি নন-প্রাইম সংখ্যা তাই এটি গণনা করা হবে না গণনা করা হবে এবং g হল 103 যা একটি মৌলিক সংখ্যা তাই এটি গণনা করা হবে। অতএব, মোট 2টি অক্ষর আছে যার প্রাইম ASCII মান রয়েছে।

Input − string str = ‘GOXFH’
Output − count is: 2

ব্যাখ্যা − G এর ASCII মান হল 71 যা একটি মৌলিক সংখ্যা তাই এটি গণনা করা হবে, O হল 79 যা একটি মৌলিক সংখ্যা তাই এটি গণনা করা হবে, X হল 88 যা একটি নন-প্রাইম সংখ্যা তাই এটি গণনা করা হবে না , F হল 70 যা একটি মৌলিক সংখ্যা নয় তাই এটি গণনা করা হবে না এবং H হল 72 যা একটি মৌলিক সংখ্যা নয় তাই এটি গণনা করা হবে না। অতএব, মোট 2টি অক্ষর আছে যার প্রাইম ASCII মান রয়েছে।

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

  • স্ট্রিংটি ইনপুট করুন এবং এটিকে একটি ভেরিয়েবলে সংরক্ষণ করুন আসুন str

    বলি
  • length() ফাংশন ব্যবহার করে স্ট্রিং স্ট্র এর দৈর্ঘ্য গণনা করুন যা স্পেস সহ স্ট্রিং এর অক্ষর সংখ্যা অনুযায়ী একটি পূর্ণসংখ্যার মান প্রদান করবে।

  • মৌলিক মান গণনা করার জন্য একটি ফাংশন ঘোষণা করুন যা আমরা নির্ধারিত প্রতিটি অক্ষরের বিপরীতে পরীক্ষা করব

  • i থেকে শুরু করে একটি স্ট্রিং এর দৈর্ঘ্য পর্যন্ত লুপটি অতিক্রম করুন

  • লুপের ভিতরে, ট্রাভার্স করা একটি অক্ষরের ASCII মান প্রাইম কিনা তা পরীক্ষা করুন। যদি এটি একটি প্রাইম হয়, তাহলে 1 দ্বারা গণনা বাড়ান অন্যথায় মান বাড়াবেন না।

  • গণনার মোট মান ফেরত দিন

  • ফলাফল প্রিন্ট করুন।

উদাহরণ

#include <iostream>
#include <vector>
using namespace std;
#define max_val 257
// Function to find prime characters in the string
int countprime(string str){
   // Using SIEVE for finding the prime numbers less
   // than Equal to 'max_val'
   // A Boolean array "prime[0..n]". A
   // value in prime[i] will finally be false
   // if i is Not a prime, else true.
   vector<bool> prime(max_val + 1, true);
   // 0 and 1 are not primes
   prime[0] = false;
   prime[1] = false;
   for (int p = 2; p * p <= max_val; p++){
      // If prime[p] is not changed, then
      // it is a prime
      if (prime[p] == true) {
         // Upfating the all multiples of p
         for (int i = p * 2; i <= max_val; i += p){
            prime[i] = false;
         }
      }
   }
   int result = 0;
   // traversing the whole string.
   for (int i = 0; i < str.length(); ++i){
      if (prime[int(str[i])]){
         result++;
      }
   }
   return result;
}
// main function
int main(){
   string str = "tutorialspoint";
   // print required answer
   cout <<"count is: "<< countprime(str);
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
count is:1

  1. একটি স্ট্রিং-এ অক্ষরগুলিকে পুনর্বিন্যাস করুন যাতে C++ এ দুটি সন্নিহিত একই না হয়

  2. C++ এ অ্যানাগ্রামের ঘটনা গণনা করুন

  3. বর্ণমালার গণনা যার ASCII মান C++ এ N এর সংখ্যা দিয়ে তৈরি করা যেতে পারে

  4. গাছের নোডগুলি গণনা করুন যার ওজনযুক্ত স্ট্রিংটিতে C++ এ একটি স্বর রয়েছে