Cubos perfectos en un rango

Dados dos números dados a y b donde 1 <= a <= b, encuentre cubos perfectos entre a y b (a y b inclusive).
Ejemplos: 
 

Input  :  a = 1, b = 100
Output : 1 8 27 64
Perfect cubes in the given range are 
1, 8, 27, 64

Input :  a = 24, b = 576
Output : 27 64 125 216 343 512
Perfect cubes in the given range are 
27, 64, 125, 216, 343, 512

Este problema es similar a los cuadrados perfectos entre dos números .
Método 1 (ingenuo): un enfoque ingenuo es verificar todos los números entre a y b (incluidos a y b) 
e imprimir el cubo perfecto. El siguiente es el código para el enfoque anterior: 
 

C++

// A Simple Method to count cubes between a and b
#include <bits/stdc++.h>
using namespace std;
 
void printCubes(int a, int b)
{
    // Traverse through all numbers in given range
    // and one by one check if number is prime
    for (int i = a; i <= b; i++) {
        // Check if current number 'i'
        // is perfect cube
        for (int j = 1; j * j * j <= i; j++) {
            if (j * j * j == i) {
                cout << j * j * j << "  ";
                break;
            }
        }
    }
}
 
// Driver code
int main()
{
    int a = 1, b = 100;
    cout << "Perfect cubes in given range:\n ";
    printCubes(a, b);
    return 0;
}

Java

// A Simple Method to count cubes between a and b
 
class Test {
 
    static void printCubes(int a, int b)
    {
 
        // Traverse through all numbers in given range
        // and one by one check if number is prime
        for (int i = a; i <= b; i++) {
 
            // Check if current number 'i'
            // is perfect cube
            for (int j = 1; j * j * j <= i; j++) {
                if (j * j * j == i) {
                    System.out.print(j * j * j + "  ");
                    break;
                }
            }
        }
    }
    // Driver method
    public static void main(String[] args)
    {
        int a = 1, b = 100;
        System.out.println("Perfect cubes in given range:");
        printCubes(a, b);
    }
}

Python3

# A Simple Method to count cubes between a and b
 
def printCubes(a, b) :
    # Traverse through all numbers in given range
    # and one by one check if number is prime
    for i in range(a, b + 1) :
         
        # Check if current number 'i'
        # is perfect cube
        j = 1
        for j in range(j ** 3, i + 1 ) :
             
            if (j ** 3 == i) :
                print( j ** 3, end = " ")
                break
             
 
# Driver code
 
a = 1; b = 100
print("Perfect cubes in given range: ")
printCubes(a, b)
 
 
# This code is contributed by Nikita Tiwari.

C#

// A Simple Method to count cubes
// between a and b
using System;
 
class GFG {
 
    static void printCubes(int a, int b)
    {
 
        // Traverse through all numbers
        // in given range and one by
        // one check if number is prime
        for (int i = a; i <= b; i++) {
 
            // Check if current number 'i'
            // is perfect cube
            for (int j = 1; j * j * j <= i; j++) {
                if (j * j * j == i) {
                    Console.Write(j * j * j + " ");
                    break;
                }
            }
        }
    }
 
    // Driver method
    public static void Main()
    {
        int a = 1, b = 100;
 
        Console.WriteLine("Perfect cubes in"
                          + " given range:");
        printCubes(a, b);
    }
}
 
// This code contribute by parashar.

PHP

<?php
// A Simple Method to count
// cubes between a and b
 
function printCubes($a, $b)
{
     
    // Traverse through all
    // numbers in given range
    // and one by one check
    // if number is prime
    for ($i = $a; $i <= $b; $i++)
    {
         
        // Check if current number 'i'
        // is perfect cube
        for ($j = 1; $j * $j * $j <= $i; $j++)
        {
            if ($j * $j * $j == $i)
            {
                echo $j * $j * $j, " ";
                break;
            }
        }
    }
}
     
    // Driver Code
    $a = 1;
    $b = 100;
    echo "Perfect cubes in given range:\n ";
    printCubes($a, $b);
 
// This code is contributed by ajit
?>

Javascript

<script>
// A Simple Method to count
// cubes between a and b
function printCubes(a, b)
{
     
    // Traverse through all
    // numbers in given range
    // and one by one check
    // if number is prime
    for (let i = a; i <= b; i++)
    {
         
        // Check if current number 'i'
        // is perfect cube
        for (let j = 1; j * j * j <= i; j++)
        {
            if (j * j * j == i)
            {
                document.write(j * j * j + " ");
                break;
            }
        }
    }
}
     
    // Driver Code
    let a = 1;
    let b = 100;
    document.write("Perfect cubes in given range: <br> ");
    printCubes(a, b);
 
// This code is contributed by gfgking.
 
</script>

Producción : 
 

Perfect cubes in given range:
 1 8 27 64

Método 2 (eficiente): 
simplemente podemos tomar la raíz cúbica de ‘a’ y la raíz cúbica de ‘b’ e imprimir los cubos de número entre ellos.
 

1-  Given a = 24 b = 576

2-  acr = cbrt(a))  bcr = cbrt(b)
    acr = 3 and bcr = 8

3-  Print cubes of 3 to 8 that comes under 
    the range of a and b(including a and b
    both)
    27, 64, 125, 216, 343, 512

A continuación se muestra la implementación de los pasos anteriores. 
 

C++

// Efficient method to print cubes
// between a and b
#include <cmath>
#include <iostream>
using namespace std;
 
// An efficient solution to print perfect
// cubes between a and b
void printCubes(int a, int b)
{
    // Find cube root of both a and b
    int acrt = cbrt(a);
    int bcrt = cbrt(b);
 
    // Print cubes between acrt and bcrt
    for (int i = acrt; i <= bcrt; i++)
        if (i * i * i >= a && i * i * i <= b)
            cout << i * i * i << " ";
}
 
// Driver code
int main()
{
    int a = 24, b = 576;
    cout << "Perfect cubes in given range:\n";
    printCubes(a, b);
 
    return 0;
}
// improved by prophet1999

Java

// Java progroam for Efficient method
// to print cubes between a and b
 
class Test {
    // An efficient solution to print perfect
    // cubes between a and b
    static void printCubes(int a, int b)
    {
        // Find cube root of both a and b
        int acrt = (int)Math.cbrt(a);
        int bcrt = (int)Math.cbrt(b);
 
        // Print cubes between acrt and bcrt
        for (int i = acrt; i <= bcrt; i++)
            if (i * i * i >= a && i * i * i <= b)
                System.out.print(i * i * i + " ");
    }
 
    // Driver method
    public static void main(String[] args)
    {
        int a = 24, b = 576;
        System.out.println("Perfect cubes in given range:");
        printCubes(a, b);
    }
}

Python3

# Python3 code for Efficient method 
# to print cubes between a and b
 
def cbrt(n) :
    return (int)( n ** (1. / 3))
 
# An efficient solution to print
# perfect cubes between a and b
def printCubes(a, b) :
     
    # Find cube root of
    # both a and b
    acrt = cbrt(a)
    bcrt = cbrt(b)
 
    # Print cubes between acrt and bcrt
    for i in range(acrt, bcrt + 1) :
        if (i * i * i >= a and i * i * i <= b) :
            print(i * i * i, " ", end ="")
 
# Driver code
a = 24
b = 576
print("Perfect cubes in given range:")
printCubes(a, b)
 
 
# This code is contributed
# by Nikita Tiwari.

C#

// C# progroam for Efficient
// method to print cubes
// between a and b
using System;
 
class GFG
{
    // An efficient solution
    // to print perfect
    // cubes between a and b
    static void printCubes(int a,
                           int b)
    {
        // Find cube root of
        // both a and b
        int acrt = (int)Math.Pow(a,
                             (double)1 / 3);
        int bcrt = (int)Math.Pow(b,
                             (double)1 / 3);
 
        // Print cubes between
        // acrt and bcrt
        for (int i = acrt;
                 i <= bcrt; i++)
            if (i * i * i >= a &&
                i * i * i <= b)
                Console.Write(i * i *
                              i + " ");
    }
 
    // Driver Code
    static public void Main ()
    {
        int a = 24;
        int b = 576;
        Console.WriteLine("Perfect cubes " +
                          "in given range:");
        printCubes(a, b);
    }
}
 
// This code is contributed
// by ajit

PHP

<?php
// Efficient method to print
// cubes between a and b
 
// An efficient solution
// to print perfect
// cubes between a and b
 
function printCubes($a, $b)
{
    // Find cube root
    // of both a and b
    $acrt = (int)pow($a, 1 / 3);
    $bcrt = (int)pow($b, 1 / 3);
 
    // Print cubes between
    // acrt and bcrt
    for ($i = $acrt; $i <= $bcrt; $i++)
        if ($i * $i * $i >= $a &&
            $i * $i * $i <= $b)
                echo $i * $i * $i , " ";
}
 
// Driver code
$a = 24; $b = 576;
echo "Perfect cubes in given range:\n",
                    printCubes($a, $b);
 
// This code is contributed by ajit
?>

Javascript

<script>
    // Javascript progroam for Efficient
    // method to print cubes
    // between a and b
     
    // An efficient solution
    // to print perfect
    // cubes between a and b
    function printCubes(a, b)
    {
        // Find cube root of
        // both a and b
        let acrt = parseInt(Math.pow(a, 1 / 3), 10);
        let bcrt = parseInt(Math.pow(b, 1 / 3), 10);
  
        // Print cubes between
        // acrt and bcrt
        for (let i = acrt; i <= bcrt; i++)
            if (i * i * i >= a && i * i * i <= b)
                document.write((i * i * i) + " ");
    }
     
    let a = 24;
    let b = 576;
    document.write("Perfect cubes " + "in given range:" + "</br>");
    printCubes(a, b);
     
    // This code is contributed by rameshtravel07.
</script>

Producción: 
 

Perfect cubes in given range:
27 64 125 216 343 512

Este artículo es una contribución de Sahil Chhabra y es mejorado por Prophet1999 . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *