हमें किसी भी लम्बाई की एक स्ट्रिंग दी जाती है जिसमें अपरकेस और लोअरकेस दोनों अक्षर होते हैं और कार्य उन वर्णों की गिनती की गणना करना है जिनके ASCII मान प्रमुख हैं।
अपरकेस अक्षरों [A-Z] के ASCII मान 65 से 90 तक शुरू होते हैं और छोटे अक्षर [a-z] 97 से 122 तक शुरू होते हैं।
उदाहरण के लिए
Input string str = ‘Aebg’ Output count is: 2
स्पष्टीकरण -ए के लिए एएससीआईआई मूल्य 65 है जो एक गैर-अभाज्य संख्या है, इसलिए इसे गिना नहीं जाएगा, ई 101 है जो एक प्रमुख संख्या है इसलिए इसे गिना जाएगा, बी 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
-
लंबाई () फ़ंक्शन का उपयोग करके स्ट्रिंग str की लंबाई की गणना करें जो रिक्त स्थान सहित स्ट्रिंग में अक्षरों की संख्या के अनुसार एक पूर्णांक मान लौटाएगा।
-
प्राइम वैल्यू की गणना के लिए एक फ़ंक्शन घोषित करें जिसे हम निर्धारित प्रत्येक अक्षर के खिलाफ जांचेंगे
-
लूप को i से 0 से शुरू करके स्ट्रिंग की लंबाई तक ट्रैवर्स करें
-
लूप के अंदर, जांचें कि किसी वर्ण का 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