Given an integer N, the task is to find the smallest and the largest N digit numbers which are also perfect squares.
Examples:
Input: N = 2
Output: 16 81
16 and 18 are the smallest and the largest 2-digit perfect squares.Input: N = 3
Output: 100 961
Approach: For increasing values of N starting from N = 1, the series will go on like 9, 81, 961, 9801, ….. for the largest N-digit perfect square whose Nth term will be pow(ceil(sqrt(pow(10, N))) – 1, 2).
And 1, 16, 100, 1024, ….. for the smallest N-digit perfect square whose Nth term will be pow(ceil(sqrt(pow(10, N – 1))), 2).
Below is the implementation of the above approach:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function to print the largest and // the smallest n-digit perfect squares void nDigitPerfectSquares( int n) { // Smallest n-digit perfect square cout << pow ( ceil ( sqrt ( pow (10, n - 1))), 2) << " " ; // Largest n-digit perfect square cout << pow ( ceil ( sqrt ( pow (10, n))) - 1, 2); } // Driver code int main() { int n = 4; nDigitPerfectSquares(n); return 0; } |
Java
// Java implementation of the approach class GFG { // Function to print the largest and // the smallest n-digit perfect squares static void nDigitPerfectSquares( int n) { // Smallest n-digit perfect square int smallest = ( int )Math.pow(Math.ceil(Math.sqrt(Math.pow( 10 , n - 1 ))), 2 ); System.out.print(smallest + " " ); // Largest n-digit perfect square int largest = ( int )Math.pow(Math.ceil(Math.sqrt(Math.pow( 10 , n))) - 1 , 2 ); System.out.print(largest); } // Driver code public static void main(String args[]) { int n = 4 ; nDigitPerfectSquares(n); } } |
Python3
# Python3 implementation of the approach import math # Function to print the largest and # the smallest n-digit perfect squares def nDigitPerfectSquares(n): # Smallest n-digit perfect square print ( pow (math.ceil(math.sqrt( pow ( 10 , n - 1 ))), 2 ), end = " " ); # Largest n-digit perfect square print ( pow (math.ceil(math.sqrt( pow ( 10 , n))) - 1 , 2 )); # Driver code n = 4 ; nDigitPerfectSquares(n); # This code is contributed by mits |
C#
// C# implementation of the approach using System; public class GFG { // Function to print the largest and // the smallest n-digit perfect squares static void nDigitPerfectSquares( int n) { // Smallest n-digit perfect square int smallest = ( int )Math.Pow(Math.Ceiling(Math.Sqrt(Math.Pow(10, n - 1))), 2); Console.Write(smallest + " " ); // Largest n-digit perfect square int largest = ( int )Math.Pow(Math.Ceiling(Math.Sqrt(Math.Pow(10, n))) - 1, 2); Console.Write(largest); } // Driver code public static void Main(String []args) { int n = 4; nDigitPerfectSquares(n); } } // This code has been contributed by 29AjayKumar |
PHP
<?php // PHP implementation of the approach // Function to print the largest and // the smallest n-digit perfect squares function nDigitPerfectSquares( $n ) { // Smallest n-digit perfect square echo pow( ceil (sqrt(pow(10, $n - 1))), 2), " " ; // Largest n-digit perfect square echo pow( ceil (sqrt(pow(10, $n ))) - 1, 2); } // Driver code $n = 4; nDigitPerfectSquares( $n ); // This code is contributed by jit_t ?> |
1024 9801
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.