Bonsoir, pas bien dur ...
Soit un entier N à six chiffres commençant par 1. En deplacant le"1" de la gauche à l'extrême droite sans changer les autres chiffres de place , on obtient un nombre égal au triple de N.
Que vaut N ?
Solution :
142857 142857 142857 142857 142857 142857 142857 142857 142857 142857
142857 est la période de 1/7 ; ce nombre a plein de belles propriétés
14 28 57
14 multiplié par 2, c'est 28, 28 multiplié par 2, c'est 56.. Mais il y a une retenue qui se profile, donc ça devient 57 ; 57 multiplié par 2, c'est 114. On retrouve notre 14 initial, et la retenue ...
Si on multiplie ce nombre 142857 142857 142857 ... 142857 142857 par 3, ça revient à déplacer le 1 initial en le mettant à la fin.
Si on le multiplie par 2, ça revient à déplacer le 14 initial et le mettre à la fin
Si on me multiplie par 4, idem, en déplaçant 1428
Si on le multiplie par 5, idem en déplaçant 14285
Si on le multiplie par 6, idem en déplaçant 142
Et pour l'algo :
import itertools
N = 60
modinv3 = [(6*10**i+3)//9 for i in range(N)]
sol = [7]
for i in range(1,N-1):
s = 1 + sum(sol[k]*10**(k+1) for k in range(len(sol))) - 3*sum(sol[k]*10**k for k in range(len(sol)))
s //= 10**len(sol)
s *= modinv3[i]
sol.append(int(s%10))
sol.append(1)
z = ''.join(map(str,sol))[::-1]
print z
# verification
print int(z[1:]+'1') == 3*int(z)
Bonjour,
on peut démontrer que c'est la seule solution quel que soit le nombre de chiffres : une répétition de 142857
de sorte que ça n'existe que pour un nombre de chiffres multiple de 6
etc etc
plein d'autres propriétés , par exemple si on supprime la contrainte que 1 soit le premier chiffre, mais qu'on dit :
Soit un entier N à six chiffres commençant par 1. En déplacant le chiffre de gauche à l'extrême droite sans changer les autres chiffres de place , on obtient un nombre égal au triple de à un multiple de N.
et la solution sera encore "presque" la même !!!
plus riche est de déplacer le chiffre de droite pour le mettre à gauche :
par exemple 1034482758620689655172413793 x 3 = 3103448275862068965517241379
(c'est le plus petit "triple tournant", sauf erreurs !!)
et on retrouve notre 142857 comme multiplié par 5 :
5 x 142857 = 714285
(142857 "tourne" quel que soit le nombre < 7 par lequel on le multiplie)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :