A1740. Mano a mano (2ème épisode) ***
Q1 Existe-t-il une progression arithmétique (PA) de 11 entiers positifs tels que les sommes des chiffres de chacun d’eux en représentation décimale forment aussi une progression
arithmétique ?
Q2 Même question avec une PA de 2021 entiers positifs.
Q3 Même question avec une PA d’une infinité d’entiers positifs.
Remarque : Une suite constante répond aux trois questions (par oui)
Supposons donc que la première suite (PA) n'est pas constante . Alors : Q1 :
8, 216, 424, 632, 840, 1048, 1256, 1464, 1672, 1880, 2088 de raison 208
Vérifie les conditions car les sommes des chiffres forment la suite ci-dessous.
8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
Q2 :
La suite qui commence par 22444444444397775 et de raison 99999999999999 donne 2021 termes dont la somme des chiffres est une constante (78)
(voir annexe pour le programme)
Q3 : Non
Prenons un exemple (qui se généralise)
La suite dont le premier terme est 123 et la raison 89 contient dans l'ordre : 123 …... 89123 ….. 8989123 …..890000123 ….
U
1U
mU
nU
sEt dans ce cas si on note SC ( n ) la somme des chiffres de n Nous avons SC (U
m)< SC (U
n)> SC (U
s)
Donc SC (U
n) ne peut être arithmétique.
Annexe :
1) Programme qui permet de trouver une PA de longueur donnée qui vérifie les conditions
def sc(x):
l = [int(i) for i in str(x)]
return sum(l)
fin = 20 #nombre de termes de la suite PA r = 9
ook = 0 aa = 0
while ook == 0 : aa = aa+1 a= aa r = 9
while (ook == 0) and (r < 10**50):
r = r*10+9 l=[]
ll = []
l.append(sc(a)) ll.append(a)
for i in range(fin-1):
a= a+r
l.append(sc(a)) ll.append(a) ok = 1
dif = l[1] - l[0]
for k in range(len(l)-1):
if l[k+1] - l[k] != dif : ok = 0
if ok == 1 :
print("nombre de termes : ",fin)
print( "Premier terme :",ll[0]," raison : ",r," Suite des sommes de chiffres :",l[1],l[2], " ...")
ook = 1
2) Programme qui permet de vérifier si une suite vérifie les conditions
def sc(x):
l = [int(i) for i in str(x)]
return sum(l)
premier_terme = 22444444444397775 raison = 99999999999999
nb_termes = 2021
l = []
ll = []
for n in range(nb_termes):
un = premier_terme + n*raison l.append(un)
ll.append(sc(un)) ok = 1
dif = ll[1] - ll[0]
for n in range(len(ll)-1):
if ll[n+1] -ll[n] != dif : ok = 0
if ok == 1:
print("La suite vérife les conditions") if ok == 0:
print("La suite ne vérife pas les conditions")