You have given a list of q queries and for every query, you are given an integer N. The task is to find how many numbers less than or equal to N have numbers of divisors exactly equal to 3.
Input: q = 1 query = 6 Output: 1 Explanation: There is only one number 4 which has exactly three divisors 1, 2 and 4 and less than equal to 6.
Input: q = 2 query = 6 query = 10 Output: 1 2 Explanation: For query 1 it is covered in the example 1. query 2: There are two numbers 4 and 9 having exactly 3 divisors and less than equal to 10.
You don't need to read input or print anything. Your task is to complete the function threeDivisors() which takes an integer q and a list of integer of size q as input parameter and returns the list containing the count of the numbers having exactly 3 divisors for each query.
Expected Time Complexity: O(NlogN),
Expected Auxiliary Space: O(N), where N is min(10^6,N)
1 <= q <= 103
1 <= query[i] <= 1012
We strongly recommend solving this problem on your own before viewing its editorial. Do you still want to view the editorial?Yes