Capi 2 Capi 10

propuesto por josejuan

Un número es "Capi 2 Capi 10" si es capicúa tanto en representación binaria como decimal. El desafío consisten en enumerarlos de la forma más rápida posible.

Enunciado
Un número es "Capi 2 Capi 10" si es capicúa tanto en representación binaria como decimal.

Por ejemplo el número 1 es "Capi 2 Capi 10" porque en base 2 es "1" que es capicúa y en base 10 es "1" que también es capicúa.

Los primeros "Capi 2 Capi 10" son 1, 3, 5, 7, 9, 33, 99, 313, 585, 717, 7447, 9009, 15351, 32223, 39993, 53235, 53835, 73737, ... pero los hay todo lo grandes que puedas encontrarlos como el 1793770770773971.

El desafío consisten en enumerarlos TODOS de la forma más rápida posible (es decir no dejándose ninguno al enumerarlos, no sacar la lista completa porque, presumiblemente, hay infinitos "Capi 2 Capi 10").
Preguntas sobre el desafío

¿Tienes dudas sobre el desafío? plantéala aquí

Plantea tu pregunta

5 Soluciones

Dar mi solución

0votos
Capi 2 Capi 10 en Haskell
por

josejuan

hace 3 años

No conozco ninguna propiedad que permita relacionar los capicúas en base 2 y base 10 por lo que no veo otra que tomar los de base 10 (hay mucho menos) y checar si lo es en base 2. Así, todos los speepup serían de la constante multiplicativa y el algoritmo exponencial en el número de dígitos (lineal en el máx N a revisar).

1voto
Capi 2 Capi 10 en Java
por

Esteban Candia

hace 3 años

Primero obtengo el binario a partir del numero natural mediante el metodo obtenerBinario(). Luego determino si ambos son capicuas mediate el metodo esCapicua(). Si ambos devuelven true, entonces tenemos un capi2capi10.

Dar mi solución