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 Codeint 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 coden = 10countSquaresNonSquares(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.



Javascript



Output :

Count of squares 3
Count of non-squares 7

My Personal Notes arrow_drop_up