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.
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.
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.
1 20 506 0
10 21 32
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.