# Smallest and Largest Palindrome with N Digits

• Difficulty Level : Medium
• Last Updated : 22 Jun, 2022

Given a number N. The task is to find the smallest and largest palindromic number possible with N digits.
Examples:

```Input: N = 4
Output:
Smallest Palindrome = 1001
Largest Palindrome = 9999

Input: N = 5
Output:
Smallest Palindrome = 10001
Largest Palindrome = 99999```

Smallest N-digit Palindromic Number: On observing carefully, you will observe that for N = 1, the smallest palindromic number will be 0. And for any other value of N, the smallest palindrome will have the first and last digits as 1 and all of the digits in between as 0.

• Case 1 : If N = 1 then answer will be 0.
• Case 2 : If N != 1 then answer will be (10(N-1)) + 1.

Largest N-digit Palindromic Number: Similar to the above approach, you can see that the largest possible palindrome number with N-digits can be obtained by appending 9 for N times. Therefore, largest N digits palindrome number will be 10N â€“ 1.
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the above approach``#include ``using` `namespace` `std;` `// Function to print the smallest and largest``// palindrome with N digits``void` `printPalindrome(``int` `n)``{``    ``if` `(n == 1)``    ``{``        ``cout<<``"Smallest Palindrome: 0"``<

## Java

 `// Java implementation of the above approach``class` `GfG {` `    ``// Function to print the smallest and largest``    ``// palindrome with N digits``    ``static` `void` `printPalindrome(``int` `n)``    ``{``        ``if` `(n == ``1``)``        ``{``            ``System.out.println(``"Smallest Palindrome: 0"``);``            ``System.out.println(``"Largest Palindrome: 9"``);``        ``}``        ``else``        ``{``            ``System.out.println(``"Smallest Palindrome: "``                    ``+ (``int``)(Math.pow(``10``, n - ``1``)) + ``1``);``                    ` `            ``System.out.println(``"Largest Palindrome: "``                    ``+ ((``int``)(Math.pow(``10``,n)) - ``1``));``        ``}``    ``}``    ` `    ``// Driver Code``    ``public` `static` `void` `main(String[] args) {``        ``int` `n = ``4``;``        ``printPalindrome(n);``    ``}``}`

## Python3

 `# Python 3 implementation of the above approach` `from` `math ``import` `pow` `# Function to print the smallest and largest``# palindrome with N digits``def` `printPalindrome(n):``    ``if` `(n ``=``=` `1``):``        ``print``(``"Smallest Palindrome: 0"``)``        ``print``(``"Largest Palindrome: 9"``)``    ``else``:``        ``print``(``"Smallest Palindrome:"``, ``int``(``pow``(``10``, n ``-` `1``))``+``1``)``        ``print``(``"Largest Palindrome:"``, ``int``(``pow``(``10``,n))``-``1``)``    `  `# Driver Code``if` `__name__ ``=``=` `'__main__'``:``    ``n ``=` `4``    ``printPalindrome(n)` `# This code is contributed by``# Surendra_Gangwar`

## C#

 `// C# implementation of the approach``using` `System;` `class` `GfG``{` `    ``// Function to print the smallest and largest``    ``// palindrome with N digits``    ``static` `void` `printPalindrome(``int` `n)``    ``{``        ``if` `(n == 1)``        ``{``            ``Console.WriteLine(``"Smallest Palindrome: 0"``);``            ``Console.WriteLine(``"Largest Palindrome: 9"``);``        ``}``        ``else``        ``{``            ``Console.WriteLine(``"Smallest Palindrome: "``                    ``+ (``int``)(Math.Pow(10, n - 1)) + 1);``                    ` `            ``Console.WriteLine(``"Largest Palindrome: "``                    ``+ ((``int``)(Math.Pow(10,n)) - 1));``        ``}``    ``}``    ` `    ``// Driver Code``    ``public` `static` `void` `Main(String[] args)``    ``{``        ``int` `n = 4;``        ``printPalindrome(n);``    ``}``}` `/* This code contributed by PrinciRaj1992 */`

## PHP

 ``

## Javascript

 `  ```

Output:

```Smallest Palindrome: 1001
Largest Palindrome: 9999```

Time Complexity: O(logn)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up