Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
Selected Reading
Array elements with prime frequencies?
Suppose we have one array. we have to count how many of the elements present in the array prime number of times. So if the array is {1, 2, 2, 0, 1, 5, 2, 5, 0, 0, 1, 1}, then 1 is present 4 times, 2 is present 3 times, 0 is present 3 times, and 5 is present 2 times. So there are three elements {2, 0, 5} that have occurred prime number of times. So the count will be 3.
Algorithm
countPrimeOccurrence(arr, n)
Begin count := 0 define map with int type key and int type value for each element e in arr, do increase map.key(arr).value done for each key check whether the value corresponding the value is prime or not, if prime, then increase count. return count End
Example
#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 countPrimeOcurrence(int arr[], int n){
int count = 0;
map<int, int> freq_map;
for(int i = 0; i<n; i++){
freq_map[arr[i]]++; //increase the frequency
}
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: " << countPrimeOcurrence(arr, n);
}
Output
Prime frequency count: 3
Advertisements
