Smallest and Largest N-digit perfect squares

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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
    }
}

chevron_right


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#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?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
?>

chevron_right


Output:

1024 9801


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.