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