मान लीजिए हमारे पास एक ऐरे है। हमें गिनना है कि ऐरे में मौजूद कितने तत्व अभाज्य संख्या में बार आए हैं। यदि ऐरे है {1, 2, 2, 0, 1, 5, 2, 5, 0, 0, 1, 1}, तो 1 चार बार आया, 2 तीन बार आया, 0 तीन बार आया, और 5 दो बार आया। तो तीन तत्व {2, 0, 5} हैं जो अभाज्य संख्या में बार आए हैं। तो गिनती 3 होगी।
एल्गोरिदम
countPrimeOccurrence(arr, n)
शुरुआत
count := 0
int प्रकार की कुंजी और int प्रकार के मान के साथ मैप परिभाषित करें
arr में प्रत्येक तत्व e के लिए करें
map.key(arr).value बढ़ाएं
पूर्ण
प्रत्येक कुंजी के लिए जांचें कि क्या संबंधित मान अभाज्य है, यदि अभाज्य है तो count बढ़ाएं
count वापस करें
समाप्त
उदाहरण
#include <iostream>
#include <map>
using namespace std;
bool isPrime(int n) {
for (int i = 2; i <= n / 2; i++) {
if (n % i == 0) return false;
}
return true;
}
int countPrimeOccurrence(int arr[], int n) {
int count = 0;
map<int, int> freq_map;
for (int i = 0; i < n; i++) {
freq_map[arr[i]]++;
}
for (auto it = freq_map.begin(); it != freq_map.end(); it++) {
if (isPrime(it->second))
count++;
}
return count;
}
int main() {
int arr[] = {1, 2, 2, 0, 1, 5, 2, 5, 0, 0, 1, 1};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Prime frequency count: " << countPrimeOccurrence(arr, n);
return 0;
}
आउटपुट
Prime frequency count: 3