Les nombres pandigitaux divisible par 11

Renée De Graeve

2019

1  Les entiers pandigitaux

Définition : entier pandigital
Un entier pandigital (en grec pan=tout) est un nombre de 10 chiffres différents, mais bien sûr, 0 n’est pas le premier chiffre.
Exercice0
Trouver aa le plus grand entier pandigital et bb le plus petit entier pandigital.
Combien y-a-t-il d’entiers pandigitaux ?
Réponse
On a a=9876543210a=9876543210 et b=1023456789b=1023456789.
Il y a 9 possibilités pour le premier chiffre (car il ne peut pas être égal à 0)
Il y a 9 possibilités pour le second chiffre,
Il y a 8 possibilités pour le troisième chiffre,
etc...
Il y a 2 possibilités pour le neuvième chiffre,
Il y a 1 possibilité pour le dixième chiffre.
Ily a donc 9*9!9*9! entiers pandigitaux.
On tape :


Il y a donc 3265920 entiers pandigitaux.

2  Les entiers pandigitaux divisibles par 11

2.1  Critère de divisibilité par 11

Montrer que : 10 0=110^0=1,10 1=11110^1=11-1,100=9*11+1100=9*11+1,1000=10011=11*9111000=1001-1=11*91-1
Montrer que si 10 2p=a*11+110^{2p}=a*11+1 alors 10 2p+1=b*11110^{2p+1}=b*11-1 et 10 2p+2)=c*11+110^{2p+2)}=c*11+1.
On en déduit :
Si 10 2*p=a*11+110^{2*p}=a*11+1 on a :
10 2*p+1=10*10 2*p=(111)*(a*11+1)=11*(11*a+1a)110^{2*p+1}=10*10^{2*p}=(11-1)*(a*11+1)=11*(11*a+1-a)-1 et
10 2*(p+2)=100*10 2*p=(9*11+1)*(a*11+1)=11*(9*a*11+a+9)+110^{2*(p+2)}=100*10^{2*p}=(9*11+1)*(a*11+1)=11*(9*a*11+a+9)+1
On en déduit que :
les puissances paires de 10 sont des multiples de 11 augmentés de 1 et
les puissances impaires de 10 sont des multiples de 11 diminués de 1.
On a donc Le critère de divisibilité par 11 :
Le reste de la division de n= k=0 Na k*10 kn=\sum_{k=0}^Na_k*10^k par 11 est égal au reste de la division par 11 de la différence de la somme des a 2pa_{2p} et de la somme des a 2p+1a_{2p+1}.
On augmente s’il y a lieu la première somme d’un multiple de 11 pour que la soustraction soit possible.
Par exemple :
si n=a 710 7+a 610 6+a 510 5+a 410 7+a 310 3+a 210 2+a 110 1+a 0n=a_710^7+a_610^6+a_510^5+a_410^7+a_310^3+a_210^2+a_110^1+a_0, le reste de la division par 11 de nn est : (a 0+a 2+a 4+a 6)(a 1+a 3+a 5+a 7)(a_0+a_2+a_4+a_6)-(a_1+a_3+a_5+a_7) ou
11*k+(a 0+a 2+a 4+a 6)(a 1+a 3+a 5+a 7)11*k+(a_0+a_2+a_4+a_6)-(a_1+a_3+a_5+a_7) avec kNk\in N pour que 011*k+(a 0+a 2+a 4+a 6)(a 1+a 3+a 5+a 7)<110\leq 11*k+(a_0+a_2+a_4+a_6)-(a_1+a_3+a_5+a_7)&lt;11.
Définition : rang pair, rang impair
Soit un nombre nn écrit en base 10 : n= k=0 Na k*10 kn=\sum_{k=0}^Na_k*10^k
On dira que les chiffres de rang pair sont : a 0a_0 le chiffre des unités, a 2a_2 le chiffre des centaines etc...et que les chiffres de rang impair sont : a 1a_1 le chiffre des dizaines, a 3a_3 le chiffre des milles etc...
Par exemple si n=245701n=245701, ses chiffres de rang pair sont 1,7,4 et ceux de rang impair sont 0,5,2.
Exercice
Trouver le reste de la division par 11 de 625814, de 29395 de 192738 et de 918372.
On a :
pour 625814 on a : S1=6+5+1=12 et S0=2+8+4=14 S0-S1=2
Le reste de la division de 625814 par 11 est 2.
pour 29395 on a : S1=9+9=18 et S0=5+3+2=10 S0+11-S1=3
Le reste de la division de 29395 par 11 est 3.
pour 192738 on a : S1=1+2+3=6 et S0=8+7+9=24 S0-11-S1=24-11-6=7
Le reste de la division de 192738 par 11 est 7.
pour 918372 on a : S1=9+8+7=24 et S0=1+3+2=6 S0+22-S1=4 (on remarquera que la somme S0 (resp S1) correspondant à 918372 est égale à la somme S1 (resp S0) correspondant à 19273).
Le reste de la division de 918372 par 11 est 4.
On vérifie et on tape :



2.2  Le plus grand entier pandigital divisible par 11

Exercice1
Trouver MM, le plus grand entier pandigital divisible par 11.
Le plus grand nommbre qui s’écrit avec 10 chiffres différents est :
a=9876543210a=9876543210.
Cherchons tout d’abord le reste de la division par 11 de a=9876543210a=9876543210.
On a pour a=9876543210a=9876543210 :
S0=0+2+4+6+8=20 et S1=1+3+5+7+9=25 donc
le reste R de la division de aa par 11 est R=11+20-25=6.
Pour trouver un nombre divisible par 11, il faut avoir :
soit S0-S1=11, soit S0-S1=-11
En effet puisque S0+S1=45, S0 et S1 ont des parités différentes.
Donc on ne peut pas avoir :
S0-S1=0, ni 22+S0-S1=0, ni S0-S1-22=0
On ne peut pas avoir :
S0-S1=33, ni S0-S1=-33 car abs(S0-S1)<=35-10=25.
En effet la valeur minimale de S0 ou de S1 est 0+1+2+3+4=10 et la valeur maximale de S0 ou de S1 est 45-10=35 donc on a 10-35=-25<=S0-S1<=35-10=25.
Pour avoir S0-S1=11 et S0+S1=45 il faut avoir S0=28 et S1=17.
Pour avoir S0-S1=-11 et S0+S1=45 il faut avoir S0=17 et S1=28.
Pour a=9876543210a=9876543210 pour avoir S0-S1=-11 on doit diminuer S0 de 3 et augmenter S1 de 3 et
pour avoir S0-S1=11 on doit augmenter S0 de 8 et diminuer S1 de 3.
Pour avoir S0-S1=-11 :
S0=20-3=17, S1=25+3=28, S0-S1=17-28=-11.
on peut le faire soit en échangeant un chiffre figurant dans S0 avec un chiffre figurant dans S1, soit en échangeant 3 chiffres figurant dans S0 avec trois chiffres figurant dans S1 pour avoir S0=17 et S1=28.
on peut par exemple échanger :
soit 1 avec 4 pour obtenir S0=0+2+1+6+8 et S1=4+3+5+7+9,
soit 3 avec 6 pour obtenir S0=0+2+4+3+8 et S1=1+6+5+7+9,
soit 5 avec 8 pour obtenir S0=0+2+4+6+5 et S1=1+3+8+7+9.
ou encore échanger
1 avec 2 et 3 avec 4 et 5 avec 6 pour obtenir S0=0+1+3+5+8 et S1=2+4+6+7+9,
1 avec 2 et 3 avec 4 et 7 avec 8 pour obtenir S0=0+1+3+6+7 et S1=2+4+5+8+9,
1 avec 2 et 5 avec 6 et 7 avec 8 pour obtenir S0=0+1+4+5+7 et S1=2+3+6+8+9,
3 avec 4 et 5 avec 6 et 7 avec 8 pour obtenir S0=0+2+3+5+7 et S1=1+4+6+8+9.
Pour avoir S0-S1=11 :
on doit augmenter S0 de 8 et diminuer S1 de 8 :
S0=20+8=28 et S1=25-8=17 S0-S1=28-17=11.
Puisque 8=7+1=5+3, on peut par exemple échanger :
soit 0 avec 7 et 2 avec 3 (ou 4 avec 5, ou 8 avec 9) pour obtenir :
S0=7+3+4+6+8 et S1=1+2+5+0+9 (ou S0=7+2+5+6+8 et S1=1+3+4+0+9, ou S0=7+2+4+6+9 et S1=1+3+5+0+8),
soit 2 avec 9 et 0 avec 1 (ou 4 avec 5, ou 6 avec 7) pour obtenir S0=1+9+4+6+8 et S1=0+3+5+7+2 (ou S0=0+9+5+6+8 et S1=1+3+4+7+2 ou S0=0+9+4+7+8 et S1=1+3+5+6+2),
soit 0 avec 5 et 4 avec 7 (ou 6 avec 9) pour obtenir S0=5+2+7+6+8=28 et S1=1+3+0+4+9=17 (ou S0=5+2+4+9+8 et S1=1+3+0+7+6),
soit 2 avec 7 et 0 avec 3 (ou 6 avec 9) pour obtenir S0=3+7+4+6+8 et S1=1+0+5+2+9 (ou S0=0+7+4+9+8 et S1=1+3+5+2+6),
soit 4 avec 9 et 0 avec 3 (ou 2 avec 5) pour obtenir S0=3+2+9+6+8 et S1=1+0+5+7+4 (ou S0=0+5+9+6+8 et S1=1+3+2+7+4).
On peut ensuite mettre les chiffres constituant S0 (resp S1)à n’importe place de rang pair (resp impair).
Comment trouver le plus grand entier ?
Il faut échanger 2 chiffres aussi petits que possible : ici c’est 1 et 4.
En échangeant 1 et 4, on a obtenu S0=0+2+1+6+8 et S1=4+3+5+7+9.
Pour avoir le plus grand nombre NN, il suffit d’ordonner en décroissant les chiffres de rang pair (8,6,2,1,0) et d’ordonner en décroissant les chiffres de rang impair 9,7,5,4,3.
On obtient alors M=9876524130M=9876524130.

2.3  Le plus petit entier pandigital divisible par 11

Exercice2
Trouver mm le plus petit entier pandigital divisible par 11.
Le plus petit nommbre qui s’écrit avec 10 chiffres différents est :
b=1023456789b=1023456789 puisque l’écriture d’un nombre ne commence pas par 0.
On a pour b=1023456789b=1023456789 :
S0=0+3+5+7+9=24 et S1=1+2+4+6+8=21 donc
le reste R de la division de bb par 11 est R=S0-S1=24-21=3.
Pour trouver un nombre divisible par 11, il faut avoir :
soit S0-S1=11, soit S0-S1=-11.
Pour avoir S0-S1=11 et S0+S1=45 il faut avoir S0=28 et S1=17.
Pour b=1023456789b=1023456789, pour avoir S0-S1=-11 et S0+S1=45 il faut avoir S0=17 et S1=28.
Pour avoir S0-S1=11 il faut donc augmenter S0 de 4 et diminuer S1 de 4.
Pour avoir S0-S1=-11 il faut donc diminuer S0 de 7 et augmenter S1 de 7.
Pour avoir S0-S1=11 :
Puisque 4=1+3, on peut échanger :
5 avec 8 et 3 avec 4 (ou 7 avec 8 et 3 avec 36 ou ce qui est équivalent 3 avec 8 et 7 avec 6).
Pour avoir S0-S1=-11 : pour diminuer S0 de 7 il faut échanger :
9 avec 2 (ou 8 avec 1).
Pour avoir le plus petit nombre il faut donc échanger 8 avec 5 et 4 avec 3.
On obtient S0=0+4+8+7+9=28=0+4+7+8+9 et S1=1+2+3+5+6=17.
On obtient alors :
m=1024375869m=1024375869.

2.4  Le nombre d’entiers pandigitaux divisibles par 11

Exercice3
Trouver toutes les suites croissantes des chiffres constituant S0 (chiffres de rang pair) et en déduire la suite croissante correspondante des chiffres de S1 (chiffres de rang impair) pour que nn soit divisible par 11.
On rappelle : le chiffre des unités est de rang 0 (pair), celui des dizaines est de rang 1 (impair) etc.....
Combien-y-a-t-il d’entiers pandigitaux divisibles par 11 ?
On pose :
n=a 910 9+a 810 8+a 710 7+a 610 6+a 510 5+a410 4+a 410 4+a 310 3+a 210 2+10a 1+a 0n=a_910^9+a_810^8+a_710^7+a_610^6+a_510^5+a410^4+a_410^4+a_310^3+a_210^2+10a_1+a_0
On sait que si nn est divisible par 11 on a soit S0=17 et S1=28, soit S1=17 et S0=28.
On cherche donc les valeurs de x 0,x 1,x 2,x 3,x 4x_0,x_1,x_2,x_3,x_4 vérifiant :
x 0+x 1+x 2+x 3+x 4=17x_0+x_1+x_2+x_3+x_4=17 et 0x 0<x 1<x 2<x 3<x 490\leq x_0&lt;x_1&lt;x_2&lt;x_3&lt;x_4\leq 9.
Les valeurs trouvées seront donc soit les chiffres qui constituent S0 (on peut alors en déduire S1), soit les chiffres qui constituent S1 (on peut alors en déduire S0).
On obtient :
0+1+2+5+9=17 donc 3+4+6+7+8=28
0+1+2+6+8=17 donc 3+4+5+7+9=28
0+1+3+4+9=17 donc 2+5+6+7+8=28
0+1+3+5+8=17 donc 2+4+6+7+9=28
0+1+3+6+7=17 donc 2+4+5+8+9=28
0+1+4+5+7=17 donc 2+3+6+8+9=28
0+2+3+4+8=17 donc 1+5+6+7+9=28
0+2+3+5+7=17 donc 1+4+6+8+9=28
0+2+4+5+6=17 donc 1+3+7+8+9=28
1+2+3+4+7=17 donc 0+5+6+8+9=28
1+2+3+5+6=17 donc 0+4+7+8+9=28
On a trouvé 11*2=22 possibilités pour les chiffres qui constituent S0.
Si S0 est constituée des chiffres 0,1,2,5,9 alors S1 est constituée des chiffres 3,4,6,7,8 et si S0 est constituée des chiffres 3,4,6,7,8 alors S1 est constituée des chiffres 0,1,2,5,9.
La première ligne donne comme solution 2 nombres qui sont :
n1=8975624130n1=8975624130 et n2=9857261403n2=9857261403
La somme S0 de n1n1 est égale à la somme S1 de n2n2 et
la somme S1 de n1n1 est égale à la somme S0 de n2n2 et
les chiffres de S0 (resp de S1) sont ordonnés a 0<a 2...<a 9a_0&lt;a_2...&lt;a_9 (resp a 1<a 3<...<a 8a_1&lt;a_3&lt;...&lt;a_8).
Chaque permutation des chiffres de S0 ou des chiffres de S1, ne mettant pas 0 comme chiffre de rang 9, donne un entier pandigital.
Pour n1n1 il y a :
5!=120 permutations pour les chiffres de S0 et 5!=120 permutations pour les chiffres de S1 donc
n1n1 peut générer 5! 2=120 2=144005!^2=120^2=14400 nombres pandigitaux.
Pour n2n2 il y a :
5!=120 permutations pour les chiffres de S0 et 5!-4!=4*4!=96 permutations pour les chiffres de S1 (car il y a 4! permutations qui commencent par 0) donc
n2n2 génère 5!*4!*4=120*96=115205!*4!*4=120*96=11520 possibilites.
La première ligne génère 5! 2+5!*4!*4=14400+11520=259205!^2+5!*4!*4=14400+11520=25920.
Il y a 11 lignes donc 25920*11=285120 entiers pandigitaux qui sont divisibles par 11.
Il y a donc 10!-9!=9*9!=3265920 entiers pandigitaux et 285120 entiers pandigitaux qui sont divisibles par 11.
Il y a donc parmi les entiers pandigitaux une proportion de 2851203265920=11126\frac{285120}{3265920}=\frac{11}{126} qui sont divisibles par 11 alors que parmi les entiers la proportion est de 111=11121\frac{1}{11}=\frac{11}{121}.

2.5  Nombre d’entiers pandigitaux divisible par 11 dans [m=1024375869,1024600000]

Exercice4
1. Calculer le nombre d’entiers pandigitaux divisibles par 11 qui appartiennent à [m,1024600000][m,1024600000].
2. Calculer le nombre d’entiers pandigitaux divisibles par 11 dans [m,1025000000][m,1025000000].
3. Calculer le nombre d’entiers pandigitaux divisibles par 11 qui appartiennent à [9876000000 M].
4. Calculer le nombre d’entiers pandigitaux divisibles par 11 qui appartiennent à [9876500000 M].
Correction
1. On a m=1024375869m=1024375869, donc ces entiers pandigitaux sont de la forme :
1024x 1y 1x 2y 2x 3y 31024x_1y_1x_2y_2x_3y_3 les x ix_i et les y iy_i sont tous différents et appartienent à [3,5,6,7,8,9].
et ils sont divisibles par 11 donc on a :
1+2+x 1+x 2+x 3=281+2+x_1+x_2+x_3=28 et 4+y 1+y 2+y 3=174+y_1+y_2+y_3=17 i.e x 1+x 2+x 3=25x_1+x_2+x_3=25 et y 1+y 2+y 3=13y_1+y_2+y_3=13
ou bien
1+2+x 1+x 2+x 3=171+2+x_1+x_2+x_3=17 et 4+y 1+y 2+y 3=284+y_1+y_2+y_3=28 i.e x 1+x 2+x 3=14x_1+x_2+x_3=14 et y 1+y 2+y 3=24y_1+y_2+y_3=24
La plus petite somme possible est 3+5+6=14 on ne peut donc pas avoir y 1+y 2+y 3=13y_1+y_2+y_3=13.
Donc on cherche x 1+x 2+x 3=14x_1+x_2+x_3=14 et y 1+y 2+y 3=24y_1+y_2+y_3=24 avec x 2[3,5]x_2\in [3,5]
on trouve 3+5+6=14 et 7+8+9=24 donc:
(x 1,x 2,x 3)=(3,5,6)(x_1,x_2,x_3)=(3,5,6) ou (x 1,x 2,x 3)=(3,6,5)(x_1,x_2,x_3)=(3,6,5) ou
(x 1,x 2,x 3)=(5,3,6)(x_1,x_2,x_3)=(5,3,6) ou (x 1,x 2,x 3)=(5,6,3)(x_1,x_2,x_3)=(5,6,3) et
(y 1,y 2,y 3)=(7,8,9)(y_1,y_2,y_3)=(7,8,9) ou (y 1,y 2,y 3)=(7,9,8)(y_1,y_2,y_3)=(7,9,8) ou
(y 1,y 2,y 3)=(8,7,9)(y_1,y_2,y_3)=(8,7,9) ou (y 1,y 2,y 3)=(8,9,7)(y_1,y_2,y_3)=(8,9,7) ou
(y 1,y 2,y 3)=(9,7,8)(y_1,y_2,y_3)=(9,7,8) ou (y 1,y 2,y 3)=(9,8,7)(y_1,y_2,y_3)=(9,8,7)
Il y a donc 4*6=24 nombres pandigitaux divisibles par 11 dans [m,1024600000][m,1024600000]:
[1024375869,1024375968,1024376859,1024376958,1024385769,1024385967,1024386759,1024386957,1024395768,1024395867,1024396758,1024396857,[1024375869,1024375968,1024376859,1024376958,1024385769,1024385967,1024386759,1024386957,1024395768,1024395867,1024396758,1024396857,
1024573869,1024573968,1024576839,1024576938,1024583769,1024583967,1024586739,1024586937,1024593768,1024593867,1024596738,1024596837]1024573869,1024573968,1024576839,1024576938,1024583769,1024583967,1024586739,1024586937,1024593768,1024593867,1024596738,1024596837]
2. Dans [m,1025000000],x 1x_1 peut être égal à 6 donc on peut avoir :
(x 1,x 2,x 3)=(6,3,5)(x_1,x_2,x_3)=(6,3,5) ou (x 1,x 2,x 3)=(6,5,3)(x_1,x_2,x_3)=(6,5,3)
Le nombre d’entiers pandigitaux divisibles par 11 dans [m,1025000000] est donc de 6*6=36.
3. pour 9876y 2x 2y 1x 1y 0x 09876y_2x_2y_1x_1y_0x_0 on a :
S0=x 0+x 1+x 2+6+8x_0+x_1+x_2+6+8 et S1=y 0+y 1+y 2+7+9y_0+y_1+y_2+7+9 On cherche y 2x 2y 1x 1y 0x 0y_2x_2y_1x_1y_0x_0 pour avoir S0=17 ou S1=17. Pour avoir S1=17 il faut que y 0+y 1+y 2=1797=1y_0+y_1+y_2=17-9-7=1 ce qui est impossible puisque y 0+y 1+y 20+1+2=0y_0+y_1+y_2\geq 0+1+2=0 Pour avoir S0=17 il faut que x 0+x 1+x 2=3=0+1+2x_0+x_1+x_2=3=0+1+2 donc
([x 0,x 1,x 2]([0,1,2],[0,2,1],[1,0,2],[1,2,0],[2,0,1],[2,1,0]([x_0,x_1,x_2]\in ([0,1,2],[0,2,1],[1,0,2],[1,2,0],[2,0,1],[2,1,0] et il reste pour (y 0,y 1,y 2)(y_0,y_1,y_2) les chiffres 3,4,53,4,5 donc
[y 0,y 1,y 2]([([3,4,5],[3,5,4],[4,3,5],[4,5,3],[5,3,4],[5,4,3][y_0,y_1,y_2]\in ([([3,4,5],[3,5,4],[4,3,5],[4,5,3],[5,3,4],[5,4,3]
On retrouve MM lorsque [x 0,x 1,x 2]=[2,1,0][x_0,x_1,x_2]=[2,1,0] et [y 0,y 1,y 2]=[5,4,3][y_0,y_1,y_2]=[5,4,3] ce qui fait bien M=9876524130M=9876524130 Il y a donc 6*6=366*6=36 nombres pandigitaux divisibles par 11 dans [9876000000,M][9876000000, M]
4. Pour avoir les nombres pandigitaux divisibles par 11 qui sont dans [9876500000,M][9876500000, M] on doit avoir [y 0,y 1,y 2]([[5,3,4],[5,4,3])[y_0,y_1,y_2]\in ([[5,3,4],[5,4,3])
Il y donc 2*6=122*6=12 nombres pandigitaux divisibles par 11 dans [9876500000,M][9876500000, M] ce sont :

9876503142,9876503241,9876504132,9876504231,9876513042,9876513240,9876514032,9876514230,9876523041,9876523140,9876524031,98765241309876503142,9876503241,9876504132,9876504231,9876513042,9876513240,9876514032,9876514230,9876523041,9876523140,9876524031,9876524130

2.6  Un programme pour vérifier les différents résultats

2.7  Un premier programme

Un premier programme pour les entiers de 4 chiffres différents appartenant à [0,1,2,3] mais bien sûr 0 n’est pas le premier chiffre que l’on appelle ici Digit04.
Pour transformer une liste de chiffres L en un nombre n on utilise la commande : n:=convert(L,base,10).




On a donc :
convert([0,1,2,3],base,10) renvoie 3210
convert([3,2,1,0],base,10) renvoie 123
En utilisant la commande revlist(L) qui renvoie la liste L inversée, on a :




convert(revlist([0,1,2,3]),base,10) renvoie 123 et un tel nombre ne fait pas partie de l’ensemble Digit04 alors que
convert(revlist([3,2,1,0]),base,10) renvoie 3210.
Pour générer la permutation suivante de L dans l’ordre lexicographique (a<b<..<za&lt;b&lt;..&lt;z et 0<1<2..<32100&lt;1&lt;2..&lt;3210) on utilise la commande nextperm(L).
Si L:=[0,1,2,3] on a :


On obtient R0 :
[0,1,2,3],[0,1,3,2],[0,2,1,3],[0,2,3,1],[0,3,1,2],[0,3,2,1] donc ces listes ne donneront pas des entiers appartenant à Digit04 car elles commencent par 0 et on a

qui est une suite croissante allant de 123 à 321.
Ces listes ne donneront pas des entiers appartenant à Digit04 car elles commencent par 0 et donc n:=convert(revlist(L),base,10) renvoie une liste croissante allant de 123 à 321.
Lorsque L vaut [0,3,2,1] et on a :

renvoie :
[1,0,2,3],[1,0,3,2],[1,2,0,3],[1,2,3,0],[1,3,0,2],[1,3,2,0],[2,0,1,3],
[2,0,3,1],[2,1,0,3],[2,1,3,0],[2,3,0,1],[2,3,1,0],[3,0,1,2],[3,0,2,1],
[3,1,0,2],[3,1,2,0],[3,2,0,1],[3,2,1,0]
Attention
Si on a L:=[3,2,1,0] alors nextperm(L) renvoie undef.
Exercice5
Écrire un programme qui trouve les entiers de Digit04 divisible par 11.
Solution
On tape pour trouver les entiers de Digit04 divisible par 11 :

digital04():={
  local k,L,L11,n1,n0,n;
  L:=[0,1,2,3];
  n1:=4!-3!;n0:=3!-1;
  L11:=NULL;
  pour k de 1 jusque n0 faire
     L:=nextperm(L);
  fpour;
  pour k de 1 jusque n1 faire
     L:=nextperm(L);
     n:=convert(revlist(L),base,10);
     si irem(n,11)==0 alors L11:=L11,n;fsi;
   fpour;
return [L11];
}:;

onload


On amélore la vitesse du programme si :
on enlève le premier pour et on initialise L par L:=[0,3,2,1]; et
surtout si on modifie L11 en place en remplaçant :
L11:=L11,n par L11.append(n).
Mais cette amélioration est peu visible pour les entiers de Digit14

Digital04():={
  local k,L,L11,n1,n;
  L:=[0,3,2,1];
  n1:=4!-3!;
  L11:=NULL;
  pour k de 1 jusque n1 faire
     L:=nextperm(L);
     n:=convert(revlist(L),base,10);
     si irem(n,11)==0 alors L11.append(n);fsi;
   fpour;
return [L11];
}:;

onload


2.8  Le programme vérifiant les différents résultats

Exercice6
Écrire un programme qui trouve les entiers pandigitaux divisibles par 11.
Solution
Attention !!!!
Quand une liste XXXL devient longue, XXXL:=XXXL,n prend de plus en plus de temps. Pour gagner du temps la solution est de modifier XXXL en place, en écrivant XXXL.append(n) au lieu de XXXL:=XXXL,n.
On tape :

pandigital():={
  local k,D,D11,n1,n0,n;
  D:=[0,1,2,3,4,5,6,7,8,9];
  n0:=9!
  n1:=10!-9!;
  D11:=NULL;
  pour k de 1 jusque n0 faire
     D:=nextperm(D);
  fpour;
  pour k de 1 jusque n1 faire
     D:=nextperm(D);
     n:=convert(revlist(D),base,10);
     si irem(n,11)==0 alors D11.append(n);fsi;
   fpour;
return [D11];
}:;

onload
ou on supprime la première boucle pour et on initialise D par :
D:=[0,9,8,7,6,5,4,3,2,1]; car :


On retrouve bien la valeur du minimum mm.
On tape :

Pandigital():={
  local k,D,D11,n1,n;
  D:=[0,9,8,7,6,5,4,3,2,1];
  n1:=10!-9!;
  D11:=NULL;
  pour k de 1 jusque n1 faire
     D:=nextperm(D);
     n:=convert(revlist(D),base,10);
     si irem(n,11)==0 alors D11.append(n);fsi;
  fpour;
return [D11];
}:;

onload
Le nombre d’entier pandigitaux divisible par 11 (soyez patient il faut attendre que Pandigital() vous fournisse la liste des pandigitaux divisibles par 11 et la longueur de cette liste :


On trouve bien 285120.
Le minimum mm :


Le maximum mm :


Les 24 premiers entiers pandigitaux divisibles par 11 :




On prolonge cette suite jusqu’au 37ième pour montrer le 37ième ne convient pas (le dernier indice est 36 car les indices commencent à 0) :

Les 37 derniers entiers pandigitaux divisibles par 11 :






Les 12 derniers entiers pandigitaux divisibles par 11 :
9876503142,9876503241,9876504132,9876504231,9876513042,9876513240,
9876514032,9876514230,9876523041,9876523140,9876524031,9876524130
Remarque
On peut trouver les entiers pandigitaux divisibles par 11 qui sont dans [9876500000,M][9876500000, M] directement en modifiant le programme précédent.
Il suffit de débuter le programme avec D:=[9,8,7,6,5,0,1,2,3,4]; et n1:=5! car il faut tester les 5! permutations à partir D (5! puisque size([0,1,2,3,4]) vaut 5).
On tape :

Pandigital1(D,n1):={
  local k,D11,n;
  D11:=NULL;
  pour k de 1 jusque n1 faire
     n:=convert(revlist(D),base,10);
     si irem(n,11)==0 alors D11.append(n);fsi;
  fpour;
  D:=nextperm(D);
return [D11];
}:;

onload


Exercice
Modifier le programme précédent pour qu’il soit valable quelque soit D i.e. il faut initialiser correctement n1.

3  Amusement : Un carré magique de 4x4 entiers pandigitaux

Voici le tableau de Kurchan (Rodolpho Kurchan de Buenos Aires) : c’est un carré magique dont la somme est le nombre pandigital 4129607358.

1037956284103694728510278563941026847395
1026857394102784639510369572841037946285
1036847295103785629410269473851027956384
1027946385102695738410378462951036857294


On vérifie :
La somme des lignes est égale à 4129607358 :








La somme des colonnes est égale à 4129607358 :








La somme des diagonales est égale à 4129607358 :



  


This document was translated from LATEX by HEVEA.