1. Le pasas un número al programa
2. Calculas la multiplicación de él por el anterior, por el anterior, por el anterior... y así hasta 1 (0 no porque sino se jode el invento).
3. Al resultado, le coges los dígitos de más a la izquierda, y vas cogiendo de dos en dos (si se queda uno suelto, también entra, creo...). Con cada par, coges y lo substituyes por el ASCII (en decimal, supongo) que le corresponda a dicho valor. Pero si el valor que forma la pareja es igual o menor que 32, en lugar de eso, lo cambias por un ~.
4. Imprimir cada vez que se pase por el 3, hasta terminar con todo el resultado del 2.
Creo.