Múltiplo más pequeño de N con exactamente N dígitos en su representación de número binario

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:
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:
     

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

  • 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)

Publicación traducida automáticamente

Artículo escrito por spp____ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *