Check whether the number formed by concatenating two numbers is a perfect square or not

Given two numbers a and b and the task is to check whether the concatenation of a and b is a perfect square or not.

Examples:

Input: a = 1, b = 21
Output: Yes
121 = 11 × 11, is a perfect square.

Input: a = 100, b = 100
Output: No
100100 is not a perfect square.



Approach: Initialize the number as strings initially and concatenate them. Convert the string to a number using Integer.valueOf() function. Once the string has been converted to a number, check if the number is a perfect square or not.

Below is the implementation of the above approach.

C++

// C++ program to check if the
// concatenation of two numbers
// is a perfect square or not
#include <bits/stdc++.h>
using namespace std;
  
// Function to check if
// the concatenation is
// a perfect square
void checkSquare(string s1, string s2)
{
  
    // Function to convert 
    // concatenation of 
    // strings to a number
    int c = stoi(s1 + s2);
  
    // square root of number
    int d = sqrt(c);
  
    // check if it is a
    // perfect square
    if (d * d == c) 
    {
        cout << "Yes";
    }
    else 
    {
        cout << "No";
    }
}
  
// Driver Code
int main()
{
    string s1 = "12";
    string s2 = "1";
  
    checkSquare(s1, s2);
      
    return 0;
}

Java

// Java program to check if the
// concatenation of two numbers
// is a perfect square or not
import java.lang.*;
class GFG {
  
    // Function to check if the concatenation is
    // a perfect square
    static void checkSquare(String s1, String s2)
    {
  
        // Function to convert concatenation
        // of strings to a number
        int c = Integer.valueOf(s1 + s2);
  
        // square root of number
        int d = (int)Math.sqrt(c);
  
        // check if it is a perfect square
        if (d * d == c) {
            System.out.println("Yes");
        }
        else {
            System.out.println("No");
        }
    }
  
    // Driver Code
    public static void main(String[] args)
    {
        String s1 = "12";
        String s2 = "1";
  
        checkSquare(s1, s2);
    }
}

Output:

Yes


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.