Ir al contenido (saltar navegación)

Checkmult

Tiempo máximo: 2,000 sMemoria máxima: 4096 KiB
Ilustración de una lupa sobre una hoja escrita

Para detectar errores de transmisión en redes de datos, es habitual calcular un checksum o "suma de verificación" a partir de los datos transmitidos, y enviar también el valor obtenido. En el otro extremo, se recalcula el valor con los datos recibidos y si el resultado no coincide con el esperado se asume que se ha producido un error de transmisión y se toman las medidas oportunas.

Hay muchas formas de calcular el checksum, que se conocen de forma conjunta como funciones de redundancia. La idea es tan útil que se utiliza en muchos otros lugares, como detección de errores en dispositivos de almacenamiento, o incluso criptografía y firmas digitales.

Inspirado por el término inglés checksum, Asier Rorde Tecta ha inventado su propia función de redundancia y la ha llamado checkmult. Para calcular el valor asociado a un número, coge todos sus dígitos que no sean cero y los multiplica entre sí, repitiendo el proceso hasta terminar con un solo dígito. Además, cuenta el número de ceros que se encuentra durante el proceso, incluídos los del número original. Al final, termina con dos valores, el dígito resultado de las sucesivas multiplicaciones y el número de ceros vistos. Pone ambos juntos y ese es el valor del checkmult.

Entrada

El programa deberá procesar múltiples casos de prueba, cada uno un número 1 ≤ n ≤ 109.

La entrada termina con un 0, que no debe procesarse.

Salida

Por cada caso de prueba se escribirá el checkmult del número del caso de prueba. Se garantiza que el resultado siempre tendrá dos dígitos, pues el número de ceros encontrados durante el proceso nunca será mayor que 9.

Entrada de ejemplo

1
20
506
0

Salida de ejemplo

10
21
32

Notas

El último ejemplo, 506 tiene un primer cero. La multiplicación de sus dígitos que no son cero, 5 y 6 da 30, que añaden un segundo cero. Al quitarlo, se queda un único dígito, el 3. El checkmult es la concatenación de este dígito final y del número total de ceros encontrados, de ahí el 32.