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: 6
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:
- 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> |
6
Time Complexity: O(n)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!