Suppose we have an array nums with all prime numbers. We have to check whether the product of all numbers present in nums is a perfect square or not.
So, if the input is like nums = [3,3,7,7], then the output will be True as product of all elements in nums is 441 which is a perfect square as 21^2 = 441.
To solve this, we will follow these steps −
- m := a map containing all elements in nums and their frequencies
- for each key in nums, do
- if m[key] is odd, then
- return False
- if m[key] is odd, then
- return True
Example
Let us see the following implementation to get better understanding −
from collections import defaultdict def solve(nums) : m = defaultdict(int) for key in nums : m[key] += 1 for key in nums : if m[key] % 2 == 1 : return False return True nums = [3,3,7,7] print(solve(nums))
Input
[3,3,7,7]
Output
True