इस ट्यूटोरियल में, हम प्राइम लेंथ पैलिंड्रोमिक स्ट्रिंग्स की संख्या को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे।
इसके लिए हमें एक स्ट्रिंग प्रदान की जाएगी। हमारा काम उन सभी सबस्ट्रिंग्स को गिनना है जो पैलिंड्रोम हैं और प्राइम लेंथ हैं।
उदाहरण
#include <bits/stdc++.h> using namespace std; //checking for a palindrome bool if_palin(string str, int i, int j){ while (i < j) { if (str[i] != str[j]) return false; i++; j--; } return true; } //counting palindrome with prime length int count_prime(string str, int len){ bool prime[len + 1]; memset(prime, true, sizeof(prime)); prime[0] = prime[1] = false; for (int p = 2; p * p <= len; p++) { if (prime[p]) { for (int i = p * p; i <= len; i += p) prime[i] = false; } } int count = 0; for (int j = 2; j <= len; j++) { if (prime[j]) { for (int i = 0; i + j - 1 < len; i++) { if (if_palin(str, i, i + j - 1)) count++; } } } return count; } int main(){ string s = "abccc"; int len = s.length(); cout << count_prime(s, len); return 0; }
आउटपुट
3