Description
You are given an integer array nums
.
Return true
if the frequency of any element of the array is prime, otherwise, return false
.
The frequency of an element x
is the number of times it occurs in the array.
A prime number is a natural number greater than 1 with only two factors, 1 and itself.
Β
Example 1:
Input: nums = [1,2,3,4,5,4]
Output: true
Explanation:
4 has a frequency of two, which is a prime number.
Example 2:
Input: nums = [1,2,3,4,5]
Output: false
Explanation:
All elements have a frequency of one.
Example 3:
Input: nums = [2,2,2,4,4]
Output: true
Explanation:
Both 2 and 4 have a prime frequency.
Β
Constraints:
1 <= nums.length <= 100
0 <= nums[i] <= 100
Solution
Python3
def generate_primes(n):
isPrime = [True] * (n + 1)
isPrime[0] = isPrime[1] = False
for i in range(2, n + 1):
if isPrime[i]:
for j in range(i * i, n + 1, i):
isPrime[j] = False
return isPrime
isPrime = generate_primes(101)
class Solution:
def checkPrimeFrequency(self, nums: List[int]) -> bool:
N = len(nums)
counter = Counter(nums)
for v in counter.values():
if isPrime[v]:
return True
return False