"Números aptos"
¡Sam tiene una idea "brillante" para la compresión! ¿Puede usted ayudar?
Aquí hay un resumen del esquema de compresión de Sam. Primero tome una representación de base 10 de cualquier número natural estrictamente menor que 2 ^ 16, y escríbala como una cadena binaria sin ceros a la izquierda.
1 -> 1 9 -> 1001 15 -> 1111 13 -> 1101 16 -> 10000 17 -> 10001 65535 -> 111111111111111
Ahora reemplace cualquier grupo de uno o más ceros con un solo cero. Esto se debe a que el número se ha vuelto más delgado. Su cadena binaria ahora se verá así.
1 -> 1 -> 1 9 -> 1001 -> 101 15 -> 1111 -> 1111 13 -> 1101 -> 1101 16 -> 10000 -> 10 17 -> 10001 -> 101 65535 -> 111111111111111 -> 111111111111111
Ahora convierte la cadena binaria de nuevo a una representación de base 10 y la genera en cualquier formato aceptable. Aquí están tus casos de prueba. El primer entero representa una entrada, y el último entero representa una salida. Tenga en cuenta que algunos números no cambian y, por lo tanto, pueden denominarse "ajuste"
1 -> 1 -> 1 -> 1 9 -> 1001 -> 101 -> 5 15 -> 1111 -> 1111 -> 15 13 -> 1101 -> 1101 -> 13 16 -> 10000 -> 10 -> 2 17 -> 10001 -> 101 -> 5 65535 -> 1111111111111111 -> 1111111111111111 -> 65535 65000 -> 1111110111101000 -> 11111101111010 -> 16250
Puede usar cualquier idioma, pero tenga en cuenta que Sam odia las lagunas estándar. Este es el código de golf, por lo que el código puede ser lo más corto posible para dejar espacio para los números "comprimidos".
Nota: Este NO es un esquema de compresión aceptable. Usar esto lo despedirá rápidamente.
Cita requerida: No tomo crédito por este concepto. Esto viene del blog de @Conor O 'Brien aquí, vea este OEIS de números de ajuste. https://oeis.org/A090078
10000?