Comprueba si N puede ser un cubo perfecto después de sumar o restar K

Dados dos números enteros N y K , la tarea es comprobar si N se puede convertir en un cubo perfecto después de sumar o restar K a él.
Ejemplos: 
 

Entrada: N = 7, K = 1 
Salida: Sí 
7 + 1 = 8 que es un cubo perfecto (2 3 = 8)
Entrada: N = 5, K = 4 
Salida: Sí 
5 – 4 = 1 que es un cubo perfecto (1 3 = 1) 
 

Enfoque: La forma más sencilla de resolver este problema es verificar si (N + K) o (N – K) es un cubo perfecto o no. 
 

  1. Comprueba si (N + K) es un cubo perfecto o no
  2. Si no, comprueba si (N – K) es un cubo perfecto o no.
  3. Si ninguno de los dos es un cubo perfecto, escriba «No», de lo contrario, escriba «Sí».
  4. Para verificar si un número es un cubo perfecto o no , la forma más fácil es encontrar el cubo del valor del piso de la raíz cúbica del número y luego verificar si este cubo es igual al número o no. 
     
if(N3 == (floor(∛N))3)
Then N is a perfect cube

A continuación se muestra la implementación del enfoque anterior:
 

C++

// C++ implementation of the above approach
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to check if a number is
// a perfect Cube or not
bool isPerfectCube(int x)
{
    int cr = round(cbrt(x));
    return (cr * cr * cr == x);
}
 
void canBePerfectCube(int N, int K)
{
    if (isPerfectCube(N + K)
        || isPerfectCube(N - K))
        cout << "Yes\n";
    else
        cout << "No\n";
}
 
// Driver code
int main()
{
    int N = 7, K = 1;
    canBePerfectCube(N, K);
 
    N = 5, K = 4;
    canBePerfectCube(N, K);
 
    N = 7, K = 2;
    canBePerfectCube(N, K);
 
    return 0;
}

Java

// Java implementation of the above approach
class GFG {
 
    // Function to check if a number is
    // a perfect Cube or not
    static boolean isPerfectCube(int x)
    {
        int cr = (int)Math.cbrt(x);
        return (cr * cr * cr == x);
    }
 
    static void canBePerfectCube(int N, int K)
    {
        if (isPerfectCube(N + K)
            || isPerfectCube(N - K) == true)
            System.out.println("Yes");
        else
             System.out.println("No");
    }
 
    // Driver code
    public static void main (String[] args)
    {
        int N = 7;
        int K = 1;
        canBePerfectCube(N, K);
     
        N = 5;
        K = 4;
        canBePerfectCube(N, K);
     
        N = 7; K = 2;
        canBePerfectCube(N, K);
     
    }
}
 
// This code is contributed by Yash_R

Python3

# Python3 implementation of the above approach
 
# Function to check if a number is
# a perfect Cube or not
def isPerfectCube(x) :
    cr = int(x ** (1/3));
    return (cr * cr * cr == x);
 
def canBePerfectCube(N, K) :
    if (isPerfectCube(N + K) or isPerfectCube(N - K)) :
        print("Yes");
    else :
        print("No");
 
# Driver code
if __name__ == "__main__" :
 
    N = 7; K = 1;
    canBePerfectCube(N, K);
 
    N = 5; K = 4;
    canBePerfectCube(N, K);
 
    N = 7; K = 2;
    canBePerfectCube(N, K);
 
# This code is contributed by Yash_R

C#

// C# implementation of the above approach
using System;
 
class GFG {
 
    // Function to check if a number is
    // a perfect Cube or not
    static bool isPerfectCube(int x)
    {
        int cr = (int)Math.Cbrt(x);
        return (cr * cr * cr == x);
    }
 
    static void canBePerfectCube(int N, int K)
    {
        if (isPerfectCube(N + K)
            || isPerfectCube(N - K) == true)
            Console.WriteLine("Yes");
        else
             Console.WriteLine("No");
    }
 
    // Driver code
    public static void Main (string[] args)
    {
        int N = 7;
        int K = 1;
        canBePerfectCube(N, K);
     
        N = 5;
        K = 4;
        canBePerfectCube(N, K);
     
        N = 7; K = 2;
        canBePerfectCube(N, K);
     
    }
}
 
// This code is contributed by AnkitRai01

Javascript

<script>
 
 
// Javascript implementation of the above approach
 
// Function to check if a number is
// a perfect Cube or not
function isPerfectCube(x)
{
    var cr = Math.round(Math.cbrt(x));
    return (cr * cr * cr == x);
}
 
function canBePerfectCube(N, K)
{
    if (isPerfectCube(N + K)
        || isPerfectCube(N - K))
        document.write("Yes<br>");
    else
        document.write("No<br>");
}
 
// Driver code
var N = 7, K = 1;
canBePerfectCube(N, K);
N = 5, K = 4;
canBePerfectCube(N, K);
N = 7, K = 2;
canBePerfectCube(N, K);
 
// This code is contributed by rrrtnx.
</script>
Producción: 

Yes
Yes
No

 

Complejidad de tiempo : O(1)

Complejidad espacial : O(1)

Publicación traducida automáticamente

Artículo escrito por spp____ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *