Dado un entero positivo N , la tarea es encontrar el múltiplo más pequeño de N con exactamente N dígitos en su representación numérica binaria .
Ejemplo:
Entrada: N = 3
Salida: 6
Explicación:
6 es el múltiplo más pequeño de 3 y también tiene una longitud de 3 (110) en binario.
Entrada: N = 5
Salida: 20
Explicación:
6 es el múltiplo más pequeño de 5 y también tiene una longitud de 5 (10100) en binario.
Planteamiento: La idea es hacer una observación.
- Si observamos con atención se formará una serie como 1, 2, 6, 8, 20,…
- El N-ésimo término de la serie sería:
- Por lo tanto, el número N se toma como entrada y se implementa la fórmula anterior.
A continuación se muestra la implementación del enfoque anterior:
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>
Producción:
6
Complejidad temporal: O(n)
Espacio auxiliar: O(1)