Skip to main content

Count Squares

Problem​

Consider a sample space S consisting of all perfect squares starting from 1, 4, 9 and so on. You are given a number N, you have to output the number of integers less than N in the sample space S.

Examples:​

Example 1:

Input :
N = 9
Output:
2
Explanation:
1 and 4 are the only Perfect Squares less than 9. So, the Output is 2.

Example 2:

Input :
N = 3
Output:
1
Explanation:
1 is the only Perfect Square less than 3. So, the Output is 1.

Your task:​

You don't need to read input or print anything. Your task is to complete the function countSquares() which takes an Integer N as input and returns the answer.

  • Expected Time Complexity: O(sqrt(N))O(sqrt(N))
  • Expected Auxiliary Space: O(1)O(1)

Constraints:​

  • 1<=N<=1081<=N<=10^8

Solution​

Python​

def countSquares(self, N):
return (math.floor(math.sqrt(N-1)) - math.ceil(math.sqrt(1)) + 1)

Java​

static int countSquares(int N) {
return (int)(Math.floor(Math.sqrt(N - 1)) - Math.ceil(Math.sqrt(1)) + 1);
}

C++​

int countSquares(int N) {
return (floor(sqrt(N - 1)) - ceil(sqrt(1)) + 1);
}

C​

int countSquares(int N) {
return (int)(floor(sqrt(N - 1)) - ceil(sqrt(1)) + 1);
}
  • Time Complexity: O(sqrt(N))O(sqrt(N))
  • Auxiliary Space: O(1)O(1)