Open In App

Smallest multiple of N with exactly N digits in its Binary number representation

Last Updated : 27 Jun, 2021
Comments
Improve
Suggest changes
Like Article
Like
Report

Given a positive integer N, the task is to find the smallest multiple of N with exactly N digits in its binary number representation.
Example: 
 

Input: N = 3 
Output:
Explanation: 
6 is the smallest multiple of 3 and has length also 3(110) in binary.
Input: N = 5 
Output: 20 
Explanation: 
6 is the smallest multiple of 5 and has length also 5(10100) in binary. 
 


 


Approach: The idea is to make an observation. 
 

  • If we observe carefully a series will be formed as 1, 2, 6, 8, 20, ...
  • The N-th term in the series would be:
     

N*\lceil 2^\frac{N-1}{N} \rceil     
 

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


Below is the implementation of the above approach:
 

C++
// C++ program to find smallest
// multiple of n with exactly N
// digits in Binary number System.

#include <iostream>
#include <math.h>
using namespace std;

// Function to find smallest multiple
// of n with exactly n digits
// in Binary number representation.
void smallestNumber(int N)
{
    cout << N * ceil(pow(2,
                         (N - 1))
                     / N);
}

// Driver code
int main()
{
    int N = 3;
    smallestNumber(N);

    return 0;
}
Java
// Java program to find smallest 
// multiple of n with exactly N 
// digits in Binary Number System. 
class GFG{ 

// Function to find smallest 
// multiple of n with exactly N 
// digits in Binary Number System. 
static void smallestNumber(int N) 
{ 
    System.out.print(N * Math.ceil
                        (Math.pow(2, (N - 1)) / N)); 
} 

// Driver code 
public static void main(String[] args) 
{ 
    int N = 3; 
    
    smallestNumber(N);
} 
} 

// This code is contributed by shubham
Python3
# Python3 program to find smallest
# multiple of n with exactly N
# digits in Binary number System.
from math import ceil

# Function to find smallest multiple
# of n with exactly n digits
# in Binary number representation.
def smallestNumber(N):
    print(N * ceil(pow(2, (N - 1)) / N))

# Driver code
N = 3
smallestNumber(N)

# This code is contributed by Mohit Kumar
C#
// C# program to find smallest 
// multiple of n with exactly N 
// digits in Binary Number System.
using System;

class GFG{ 

// Function to find smallest 
// multiple of n with exactly N 
// digits in Binary Number System. 
static void smallestNumber(int N) 
{ 
    Console.Write(N * Math.Ceiling(
                      Math.Pow(2, (N - 1)) / N)); 
} 
    
// Driver code 
public static void Main(string[] args) 
{ 
    int N = 3; 
        
    smallestNumber(N);
} 
} 

// This code is contributed by AnkitRai01
JavaScript
<script>
// Javascript program to find smallest
// multiple of n with exactly N
// digits in Binary number System.

// Function to find smallest multiple
// of n with exactly n digits
// in Binary number representation.
function smallestNumber(N)
{
    document.write(N * parseInt(Math.ceil(Math.pow(2,
                                 (N - 1))
                             / N)));
}

// Driver code
let N = 3;
smallestNumber(N);

// This code is contributed by rishavmahato348.
</script>

Output: 
6

 

Time Complexity: O(n)
Auxiliary Space: O(1)


Next Article
Article Tags :
Practice Tags :

Similar Reads