Find the largest N digit multiple of N

Given a number N, the task is to find the largest N-digit multiple of N.

Examples:

Input: N = 2
Output: 98
Explanation:
98 is the largest multiple of 2 and is of 2 digits.

Input: N = 3
Output: 999
Explanation:
999 is the largest multiple of 3 and is of 3 digits.

Approach: The idea is to make an observation.



  • If we observe carefully, a series will be formed as 9, 98, 999, 9996, 99995, …
  • In the above series, the N-th term can be calculated as:

     N*\lfloor \frac{10^N-1}{N} \rfloor

  • Therefore, the number N is taken as the input and the above formula is implemented.

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to find largest multiple
// of N containing N digits
#include <iostream>
#include <math.h>
using namespace std;
  
// Function to find the largest 
// N digit multiple of N
  
void smallestNumber(int N)
{
    cout << N * floor((pow(10, N) - 1) / N);
}
  
// Driver code
int main()
{
    int N = 2;
    smallestNumber(N);
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to find largest multiple
// of N containing N digits
import java.util.*;
class GFG{
  
// Function to find the largest 
// N digit multiple of N
static void smallestNumber(int N)
{
    System.out.print(N * Math.floor((
                         Math.pow(10, N) - 1) / N));
}
  
// Driver code
public static void main(String args[])
{
    int N = 2;
    smallestNumber(N);
}
}
  
// This code is contributed by Nidhi_biet

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 program to find largest multiple
# of N containing N digits
from math import floor
  
# Function to find the largest
# N digit multiple of N
def smallestNumber(N):
    print(N * floor((pow(10, N) - 1) / N))
  
# Driver code
if __name__ == '__main__':
    N = 2
    smallestNumber(N)
  
# This code is contributed by Mohit Kumar

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to find largest multiple
// of N containing N digits
using System;
class GFG{
  
// Function to find the largest 
// N digit multiple of N
static void smallestNumber(int N)
{
    Console.Write(N * Math.Floor((
                      Math.Pow(10, N) - 1) / N));
}
  
// Driver code
public static void Main()
{
    int N = 2;
    smallestNumber(N);
}
}
  
// This code is contributed by Code_Mech

chevron_right


Output:

98

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.




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.