Enoncé E122 (Diophante) Des tas de sable primophiles
Des tas de sable sont alignés les uns à la suite des autres et portent les numéros 1,2,3, . . . , n, . . .. Le premier tas est vide, le second contient deux grains de sable et le troisième en contient trois. A partir du quatrième tas, le nombre de grains de sable du k-ième tas est égal à la somme du nombre de grains de sable de l’anté-antépénultième tas (no=k−3) et du nombre de grains de sable de l’antépénultième tas (no=k−2). Démontrer que pour tout tas dont le numéro est un nombre premier p, le nombre de grains de sable est un multiple de p.
Question subsidiaire : est-il vrai que lorsque le numéro d’un tas est un nombre composé m quelconque, le nombre de grains de sable de ce tas n’est jamais un multiple de m?
Solution de Jean Moreau de Saint-Martin
Le contenu des tas vérifie la récurrence ak =ak−2+ak−3.
Soient u, v, w les racines de l’équation caractéristique x3 =x+ 1.
u+v+w= 0, vw+wu+uv=−1,uvw= 1.
La solution de la récurrence est classique et donneak=Auk+Bvk+Cwk. Les coefficients A, B, C s’obtiennent à partir des valeurs de départ
a1 = 0 =u+v+w,
a2 = 2 =−2(vw+wu+uv) =u2+v2+w2−(u+v+w)2, a3 = 3 =u3+v3+w3−(u+v+w).
Ainsi A=B =C= 1 convient.
Soit p un nombre premier. Dans le développement de (u+v+w)p, tous les monômes sauf 3 ont un coefficient multiple de p, et il ne reste que up+vp+wp=ap (modp).
Le fait que u, v, w ne soient pas forcément entiers, ni même réels, est sans importance : partant du corps Z/p, on forme une extension algébrique pour y inclure u, v, w. Les relations entre coefficients et racines restent valables dans ce sur-corps, la solution de la récurrence aussi, et l’addition depéléments égaux donne toujours 0. L’identité (u+v+w)p =up+vp+wp (mod p) reste vraie et montre queap est multiple de p.
Pour la question subsidiaire, on note que si n est composé, il y a dans le développement de (u+v+w)nplus de 3 monômes dont le coefficient n’est pas multiple den. Cela n’exclut pas quean puisse être multiple den, sans pouvoir établir de loi générale.
On cherche des exemples avec un petit programme, suivant l’algorithme : pourn= 4 à 100000 (par exemple),
– vérifier quen n’est pas premier,
– si c’est le cas, partant du triplet (a, b, c) = (0,2,3),
– fairen−3 fois le remplacement de (a, b, c) par (b, c,(a+b) (modn)), – si après ces remplacements le 3e terme du triplet (c’est alorsanmodn) est 0, imprimern.
Ce test ne fournit aucune exception<100000.