Como el tema me intrigaba un poco he preparado este mini ejemplo. Solo funciona con números menores de 10000 pero implementar las condiciones para números mayores entiendo que debe ser si no trivial, si bastante fácil. Habría que pulirlo, pero creo que sirve para pillar la mecánica. En el cuadro inferior debeis introducir la representación cardinal del número de la parte superior (ej: 2476 sería dos mil cuatrocientos setenta y seis)
Modestia a parte, creo que funciona bastante bien ¿no?
Salu2
EDITO
Pués no. No funcionaba tan bien. Fallaba con ciertos números debido a problemas con los espacios en blanco. Por ejemplo con 1045 o 4003 fallaba. Cooooooooooooooorregido. Adjunto swi con las correcciones (cardinales3.swi)