Related Articles

# Count square and non-square numbers before n

• Difficulty Level : Basic
• Last Updated : 23 Feb, 2021

Given a number n, we need to count square numbers smaller than or equal to n.
Examples :

```Input : n = 5
Output : Square Number : 2
Non-square numbers : 3
Explanation : Square numbers are 1 and 4.
Non square numbers are 2, 3 and 5.

Input : n = 10
Output : Square Number : 3
Non-square numbers : 7
Explanation : Square numbers are 1, 4 and 9.
Non square numbers are 2, 3, 5, 6, 7, 8 and 10.```

A simple solution is to traverse through all numbers from 1 to n and for every number check if n is perfect square or not.
An efficient solution is based on below formula.
Count of square numbers that are greater than 0 and smaller than or equal to n are floor(sqrt(n)) or ⌊√(n)⌋
Count of non-square numbers = n – ⌊√(n)⌋

## C++

 `// CPP program to count squares and``// non-squares before a number.``#include ``using` `namespace` `std;` `void` `countSquaresNonSquares(``int` `n)``{``    ``int` `sc = ``floor``(``sqrt``(n));``    ``cout << ``"Count of squares "``         ``<< sc << endl;``    ``cout << ``"Count of non-squares "``         ``<< n - sc << endl;``}` `// Driver Code``int` `main()``{``    ``int` `n = 10;``    ``countSquaresNonSquares(n);``    ``return` `0;``}`

## Java

 `// Java program to count squares and``// non-squares before a number.``import` `java.io.*;``import` `java.math.*;` `class` `GFG``{``    ``static` `void` `countSquaresNonSquares(``int` `n)``    ``{``        ``int` `sc = (``int``)(Math.floor(Math.sqrt(n)));``        ``System.out.println(``"Count of"` `+``                     ``" squares "` `+ sc);``        ``System.out.println(``"Count of"` `+``                      ``" non-squares "` `+``                            ``(n - sc) );``    ``}` `    ``// Driver code``    ``public` `static` `void` `main(String args[])``    ``{``        ``int` `n = ``10``;``        ``countSquaresNonSquares(n);``    ``}``}` `// This code is contributed``// by Nikita Tiwari.`

## Python3

 `# Python 3 program to count``# squares and non-squares``# before a number.``import` `math` `def` `countSquaresNonSquares(n) :``    ``sc ``=` `(math.floor(math.sqrt(n)))``    ``print``(``"Count of squares "``, sc)``    ``print``(``"Count of non-squares "``, (n ``-` `sc) )``    ` `    ` `# Driver code``n ``=` `10``countSquaresNonSquares(n)` `# This code is contributed``# by Nikita Tiwari.`

## C#

 `// C# program to count squares and``// non-squares before a number.``using` `System;` `class` `GFG``{``static` `void` `countSquaresNonSquares(``int` `n)``{``    ``int` `sc = (``int``)Math.Sqrt(n);``    ``Console.WriteLine( ``"Count of "` `+``                        ``"squares "` `+``                               ``sc) ;``    ``Console.WriteLine(``"Count of "` `+``                   ``"non-squares "` `+``                         ``(n - sc));``}` `    ``// Driver Code``    ``static` `public` `void` `Main ()``    ``{``    ``int` `n = 10;``    ``countSquaresNonSquares(n);``    ``}``}` `// This code is contributed by anuj_67.`

## PHP

 ``

## Javascript

 ``

Output :

```Count of squares 3
Count of non-squares 7```

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up