Check if given number is perfect square - GeeksforGeeks

12 Feb, 2022
Given a number, check if it is a perfect square or not. 
Examples : 
Input : 2500
Output : Yes
Explanation:
2500 is a perfect square.
50 * 50 = 2500

Input  : 2555
Output : No
Approach:
Take the floor()ed square root of the number.Multiply the square root twice.Use boolean equal operator to verify if the product of square root is equal to the number given.
Take the floor()ed square root of the number.
Multiply the square root twice.
Use boolean equal operator to verify if the product of square root is equal to the number given.
C++
Java
Python3
C#
PHP
Javascript
// CPP program to find if x is a// perfect square.#include <bits/stdc++.h>using namespace std; bool isPerfectSquare(long double x){    // Find floating point value of    // square root of x.    if (x >= 0) {         long long sr = sqrt(x);                 // if product of square root        //is equal, then        // return T/F        return (sr * sr == x);    }    // else return false if n<0    return false;} int main(){    long long x = 2502;    if (isPerfectSquare(x))        cout << "Yes";    else        cout << "No";    return 0;}
// Java program to find if x is a// perfect square.class GFG {     static boolean isPerfectSquare(int x)    {        if (x >= 0) {                       // Find floating point value of            // square root of x.            int sr = (int)Math.sqrt(x);                       // if product of square root            // is equal, then            // return T/F             return ((sr * sr) == x);        }        return false;    }     // Driver code    public static void main(String[] args)    {        int x = 2502;         if (isPerfectSquare(x))            System.out.print("Yes");        else            System.out.print("No");    }} // This code is contributed by Anant Agarwal.
# Python program to find if x is a# perfect square. import math  def isPerfectSquare(x):     #if x >= 0,    if(x >= 0):        sr = int(math.sqrt(x))        # sqrt function returns floating value so we have to convert it into integer        #return boolean T/F        return ((sr*sr) == x)    return false # Driver code  x = 2502if (isPerfectSquare(x)):    print("Yes")else:    print("No") # This code is contributed# by Anant Agarwal.
// C# program to find if x is a// perfect square.using System;class GFG {     static bool isPerfectSquare(double x)    {         // Find floating point value of        // square root of x.        if (x >= 0) {             double sr = Math.Sqrt(x);                       // if product of square root            // is equal, then            // return T/F            return (sr * sr == x);        }        // else return false if n<0        return false;    }     // Driver code    public static void Main()    {        double x = 2502;         if (isPerfectSquare(x))            Console.WriteLine("Yes");        else            Console.WriteLine("No");    }} // This code is contributed by vt_m.
<?php// PHP program to find if x is// a perfect square. function isPerfectSquare($x){    // Find floating point value    // of square root of x.    $sr = sqrt($x);         // If square root is an integer    return (($sr - floor($sr)) == 0);} // Driver code$x = 2502;if (isPerfectSquare($x))    echo("Yes");else    echo("No"); // This code is contributed by Ajit.?>
<script> // JavaScript program to find if x is a// perfect square. function isPerfectSquare(x)    {        if (x >= 0) {                        // Find floating point value of            // square root of x.            let sr = Math.sqrt(x);                        // if product of square root            // is equal, then            // return T/F              return ((sr * sr) == x);        }        return false;    }  // Driver code         let x = 2500;          if (isPerfectSquare(x))            document.write("Yes");        else            document.write("No"); // This code is contributed by souravghosh0416.</script>
No
To know more about the inbuilt sqrt function, refer this Stackoverflow and this StackExchange threads.
Another Approach :
Use the floor and ceil function .If they are equal that implies the number is a perfect square.
Use the floor and ceil function .
If they are equal that implies the number is a perfect square.
C++
Java
Python3
C#
Javascript
// C++ program for the above approach#include <iostream>#include <math.h>using namespace std; void checkperfectsquare(int n){         // If ceil and floor are equal    // the number is a perfect    // square    if (ceil((double)sqrt(n)) == floor((double)sqrt(n))) {        cout << "perfect square";    }    else {        cout << "not a perfect square";    }} // Driver Codeint main(){     int n = 49;    checkperfectsquare(n);    return 0;}
// Java program for the above approachimport java.io.*; class GFG{ static void checkperfectsquare(int n){         // If ceil and floor are equal    // the number is a perfect    // square    if (Math.ceil((double)Math.sqrt(n)) ==        Math.floor((double)Math.sqrt(n)))    {        System.out.print("perfect square");    }    else    {        System.out.print("not a perfect square");    }} // Driver Codepublic static void main(String[] args){    int n = 49;         checkperfectsquare(n);}} // This code is contributed by subhammahato348
# Python3 program for the above approachimport math def checkperfectsquare(x):         # If ceil and floor are equal    # the number is a perfect    # square    if (math.ceil(math.sqrt(n)) ==       math.floor(math.sqrt(n))):        print("perfect square")    else:        print("not a perfect square")     # Driver coden = 49  checkperfectsquare(n) # This code is contributed by jana_sayantan
// C# program for the above approachusing System; class GFG{ static void checkperfectsquare(int n){         // If ceil and floor are equal    // the number is a perfect    // square    if (Math.Ceiling((double)Math.Sqrt(n)) ==        Math.Floor((double)Math.Sqrt(n)))    {        Console.Write("perfect square");    }    else    {        Console.Write("not a perfect square");    }} // Driver Codepublic static void Main(){    int n = 49;     checkperfectsquare(n);}} // This code is contributed by subhammahato348
<script> // Javascript program for the above approachfunction checkperfectsquare(n){         // If ceil and floor are equal    // the number is a perfect    // square    if (Math.ceil(Math.sqrt(n)) ==        Math.floor(Math.sqrt(n)))    {        document.write("perfect square");    }    else    {        document.write("not a perfect square");    }} // Driver Codelet n = 49; checkperfectsquare(n); // This code is contributed by rishavmahato348 </script>
perfect square
jit_t
logicracker
aditipandeyap1
vermaaayush68
souravghosh0416
rishavmahato348
subhammahato348
premansh2001
khushiagarwal226
jana_sayantan
kishorenaidu712
r4jdeepbiswas
maths-perfect-square
C++ Programs
Mathematical
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
C++ Program for QuickSort
Shallow Copy and Deep Copy in C++
delete keyword in C++
Passing a function as a parameter in C++
cin in C++
Program for Fibonacci numbers
Write a program to print all permutations of a given string
C++ Data Types
Set in C++ Standard Template Library (STL)
Coin Change | DP-7