Given two numbers N and K, the task is to check whether the given number N can be made a perfect square after adding K to it.
Examples:
Input: N = 7, K = 2
Output: Yes
Explanation:
7 + 2 = 9 which is a perfect square.Input: N = 5, K = 3
Output: No
Explanation:
5 + 3 = 8 which is not a perfect square.
Approach: The idea is to compute the value of N + K and check if it is a perfect square or not. In order to check if a number is a perfect square or not, refer to this article.
Below is the implementation of the above approach:
C++
// C++ program to check whether the number // can be made perfect square after adding K #include <bits/stdc++.h> using namespace std; // Function to check whether the number // can be made perfect square after adding K void isPerfectSquare( long long int x) { // Computing the square root of // the number long double sr = round( sqrt (x)); // Print Yes if the number // is a perfect square if (sr * sr == x) cout << "Yes" ; else cout << "No" ; } // Driver code int main() { int n = 7, k = 2; isPerfectSquare(n + k); return 0; } |
Java
// Java program to check whether the number // can be made perfect square after adding K import java.util.*; class GFG { // Function to check whether the number // can be made perfect square after adding K static void isPerfectSquare( int x) { // Computing the square root of // the number int sr = ( int )Math.sqrt(x); // Print Yes if the number // is a perfect square if (sr * sr == x) System.out.println( "Yes" ); else System.out.println( "No" ); } // Driver code public static void main(String args[]) { int n = 7 , k = 2 ; isPerfectSquare(n + k); } } // This code is contributed by Yash_R |
Python3
# Python3 program to check whether the number # can be made perfect square after adding K from math import sqrt # Function to check whether the number # can be made perfect square after adding K def isPerfectSquare(x) : # Computing the square root of # the number sr = int (sqrt(x)); # Print Yes if the number # is a perfect square if (sr * sr = = x) : print ( "Yes" ); else : print ( "No" ); # Driver code if __name__ = = "__main__" : n = 7 ; k = 2 ; isPerfectSquare(n + k); # This code is contributed by Yash_R |
C#
// C# program to check whether the number // can be made perfect square after adding K using System; class GFG { // Function to check whether the number // can be made perfect square after adding K static void isPerfectSquare( int x) { // Computing the square root of // the number int sr = ( int )Math.Sqrt(x); // Print Yes if the number // is a perfect square if (sr * sr == x) Console.WriteLine( "Yes" ); else Console.WriteLine( "No" ); } // Driver code public static void Main(String []args) { int n = 7; int k = 2; isPerfectSquare(n + k); } } // This code is contributed by Yash_R |
Javascript
<script> // Javascript program to check whether the number // can be made perfect square after adding K // Function to check whether the number // can be made perfect square after adding K function isPerfectSquare(x) { // Computing the square root of // the number var sr = Math.round(Math.sqrt(x)); // Print Yes if the number // is a perfect square if (sr * sr == x) document.write( "Yes" ); else document.write( "No" ); } // Driver code var n = 7, k = 2; isPerfectSquare(n + k); </script> |
Yes
Time complexity: O(log(N)), where N is sum of given n and k.
Auxiliary space: O(1)
Note: Similar, it can be checked whether (N – K) can be a perfect square or not, by replacing ‘+’ with ‘-‘ sign in the above function.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!