Dados dos números N y K , la tarea es verificar si el número dado N se puede convertir en un cuadrado perfecto después de agregarle K.
Ejemplos:
Entrada: N = 7, K = 2
Salida: Sí
Explicación:
7 + 2 = 9 que es un cuadrado perfecto.
Entrada: N = 5, K = 3
Salida: No
Explicación:
5 + 3 = 8 que no es un cuadrado perfecto.
Enfoque: La idea es calcular el valor de N + K y comprobar si es un cuadrado perfecto o no. Para comprobar si un número es un cuadrado perfecto o no, consulta este artículo .
A continuación se muestra la implementación del enfoque anterior:
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>
Producción:
Yes
Nota: De manera similar, se puede verificar si (N – K) puede ser un cuadrado perfecto o no, reemplazando el signo ‘+’ con ‘-‘ en la función anterior.