Exactly 3 Divisors

Exactly 3 Divisors 

Given a positive integer value N. The task is to find how many numbers less than or equal to N have numbers of divisors exactly equal to 3.

Example 1:

Input:
N = 6
Output: 1
Explanation: The only number with 
3 divisor is 4.

Example 2:

Input:
N = 10
Output: 2
Explanation: 4 and 9 have 3 divisors.

Your Task:
You don't need to read input or print anything. Your task is to complete the function exactly3Divisors() that takes as parameter and returns count of numbers less than or equal to N with exactly 3 divisors.

Expected Time Complexity : O(N1/2 * N1/4)
Expected Auxilliary Space :  O(1)

Constraints :
1 <= N <= 109


__________________________________________________________-

def isprime(n):

    if n==2:

        return True

    for i in range(2, int(n**0.5)+1):

        if n%i==0:

            return False

    return True

    

##Complete this function

def exactly3Divisors(N):

    ##Your code here

    n = int(N**0.5)

    c=0

    for i in range(2, n+1):

        if isprime(i):

            c+=1

    return c

Comments