Saltar al contenido

¿Potencia de 2?

Enunciado

Escribe una función que reciba un número entero y regrese verdadero si es una potencia de 2 (1, 2, 4, 8, 16, 32...) y falso si no.

El 1 sí cuenta: es 2 elevado a la 0. El 0 y los negativos no son potencias de 2, así que con ellos regresas falso.

Idea: divide entre 2 con un while mientras el número sea par. Si al final te queda 1, era potencia de 2.

Ejemplos

  • 1 → true

  • 2 → true

  • 8 → true

  • 6 → false

  • 3 → false

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def es_potencia_de_dos(n):
    pass

JavaScript

function esPotenciaDeDos(n) {
}
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Es gratis y no hace falta cuenta para empezar.

Más retos de O(log n)

Ver todos los retos →