Given an integer N, the task is to find the smallest and the largest N digit numbers which are also perfect cubes.
Examples:
Input: N = 2
Output: 27 64
27 and 64 are the smallest and the largest 2-digit numbers which are also perfect cubes.
Input: N = 3
Output: 125 729
Approach: For increasing values of N starting from N = 1, the series will go on like 8, 64, 729, 9261, ….. for the largest N-digit perfect cube whose Nth term will be pow(ceil(cbrt(pow(10, (n))))-1, 3).
And 1, 27, 125, 1000, ….. for the smallest N-digit perfect cube whose Nth term will be pow(ceil(cbrt(pow(10, (n – 1)))), 3).
Below is the implementation of the above approach:
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std;
// Function to print the largest and // the smallest n-digit perfect cube void nDigitPerfectCubes( int n)
{ // Smallest n-digit perfect cube
cout << pow ( ceil (cbrt( pow (10, (n - 1)))), 3) << " " ;
// Largest n-digit perfect cube
cout << ( int ) pow ( ceil (cbrt( pow (10, (n)))) - 1, 3);
} // Driver code int main()
{ int n = 3;
nDigitPerfectCubes(n);
return 0;
} |
// Java implementation of the approach class GFG {
// Function to print the largest and
// the smallest n-digit perfect cube
static void nDigitPerfectCubes( int n)
{
// Smallest n-digit perfect cube
int smallest = ( int )Math.pow(Math.ceil(Math.cbrt(Math.pow( 10 , (n - 1 )))), 3 );
System.out.print(smallest + " " );
int largest = ( int )Math.pow(Math.ceil(Math.cbrt(Math.pow( 10 , (n)))) - 1 , 3 );
System.out.print(largest);
}
// Driver code
public static void main(String args[])
{
int n = 3 ;
nDigitPerfectCubes(n);
}
} |
# Python3 implementation of the approach from math import ceil
# Function to print the largest and # the smallest n-digit perfect cube def nDigitPerfectCubes(n):
# Smallest n-digit perfect cube
print ( pow (ceil(( pow ( 10 , (n - 1 ))) * *
( 1 / 3 )), 3 ), end = " " )
# Largest n-digit perfect cube
print ( pow (ceil(( pow ( 10 , (n))) * *
( 1 / 3 )) - 1 , 3 ))
# Driver code if __name__ = = "__main__" :
n = 3
nDigitPerfectCubes(n)
# This code is contributed by Rituraj Jain |
// C# implementation of the approach using System;
class GFG
{ // Function to print the largest and
// the smallest n-digit perfect cube
static void nDigitPerfectCubes( int n)
{
// Smallest n-digit perfect cube
int smallest = ( int )Math.Pow(Math.Ceiling(MathF.Cbrt(( float )Math.Pow(10, (n - 1)))), 3);
Console.Write(smallest + " " );
int largest = ( int )Math.Pow(Math.Ceiling(MathF.Cbrt(( float )Math.Pow(10, (n)))) - 1, 3);
Console.Write(largest);
}
// Driver code
static void Main()
{
int n = 3;
nDigitPerfectCubes(n);
}
} // This code is contributed by mits |
<?php // PHP implementation of the approach // Function to print the largest and // the smallest n-digit perfect cube function nDigitPerfectCubes( $n )
{ // Smallest n-digit perfect cube
print (pow( ceil (pow(pow(10, ( $n - 1)),1/3)), 3). " " );
// Largest n-digit perfect cube
print ((int)pow( ceil (pow(pow(10, ( $n )),1/3)) - 1, 3));
} // Driver code $n = 3;
nDigitPerfectCubes( $n );
// This code is contributed by mits ?> |
<script> // javascript implementation of the approach // Function to print the largest and // the smallest n-digit perfect cube function nDigitPerfectCubes( n)
{ // Smallest n-digit perfect cube
document.write( Math.pow(Math.ceil(Math.cbrt(Math.pow(10, (n - 1)))), 3) + " " );
// Largest n-digit perfect cube
document.write( Math.pow(Math.ceil(Math.cbrt(Math.pow(10, (n)))) - 1, 3));
} // Driver code let n = 3;
nDigitPerfectCubes(n);
// This code contributed by aashish1995
</script> |
125 729
Time Complexity: O(log n)
Auxiliary Space: O(1)