C220. Les colonnes du temple
Cryptarithme proposé par Raymond Bloch
On pose la multiplication de deux entiers A à 4 chiffres et B à deux chiffres. Sur les lignes L1 à L5
figurent respectivement A, B, les résultats des deux multiplications intermédiaires et le résultat final de la multiplication A x B.
Sachant que la somme des chiffres d'une même colonne sur les cinq lignes est toujours égale à 17, déterminer A et B.
Pour les plus courageux.
Existe-t-il d'autres couples d'entiers A à 4 chiffres et B à 2 chiffres qui donnent lieu à la même représentation des lignes L1 à L5 telles que la somme des chiffres d'une même colonne est toujours la même?
Solution proposée par Claudio Baiocchi
On va appeler la somme des chiffres dans chaque colonne ; somme que, a priori, on ne suppose pas égale à 17 . Si l’on représente sous la forme , avec et chiffres des dizaines et des unités de , le contenu des lignes L3 et L4 vaut respectivement et (le facteur 10 étant motivé par le décalage) ; leur somme est , et donc la somme des contenu des cinq ligne est . On en déduit :
Deux autres relations sont assez simples à décrire : sommant les trois chiffres de la colonne de gauche on a :
et sommant les quatre chiffres de la colonne de droite on a :
L’évaluation de la somme des chiffres des autres colonnes est plus compliquée ; on va donc voire quelles sont les solutions des trois équations déjà obtenues.
La routine suivante (partie d’un programme Pascal), explore les triplets en utilisant la première des relation trouvées pour définir .
for a:=1000 to 9999 do for ub:=2 to 9 do if ub*a>9999 then for db:=1 to ub-1 do if db*a<10000 then begin
b:=10*db+ub; if a*b<100000 then begin
ss:=a+b+2*a*b; if (ss mod 11111)=0 then begin
s:=ss div 11111; if 2*((a*ub) mod 10)+(a mod 10)+ub = s then
if (a*b)div 10000 + (a*db)div 1000 + (a*ub)div 10000 = s then afficher end end end; writeln('Fini'); readln
La routine « afficher » est la suivante : writeln(' ',a);
writeln(' X ',b);
writeln(' ---');
writeln(' ',a*ub);
writeln(' ',a*db);
writeln(' ---');
writeln(' ',a*b,' somme ',s);
writeln; readln
et moins d’une seconde est suffisant à fournir la solution :
Encore en moins d’une seconde le programme affiche le mot « Fini » : la solution trouvée est unique et, comme on constate aisément, satisfait aussi les relations demandées sur les trois colonnes intermédiaires.