Enoncé du problème n° 58
Quels sont les nombres à quatre chiffres \(n\) tels que la somme de \(n\) et de ses quatre chiffres soit égale à 2019 ?
Exemple : 1998 ne convient pas car $$1998 + 1 + 9 + 9 + 8 = 2025.
$$
Correction du problème n° 58
Notons \(a, b, c\) et \(d\) les chiffres qui composent \(n\), tels que : $$n=1000 a+100 b+10 c+d.$$
On cherche donc à déterminer tous les quadruplets de chiffres \((a ;b ;c ;d) \) vérifiant :
$$1000 a+100 b+10 c+d+a+b+c+d=2019$$
qui équivaut à :
$$1001 a+101 b+11 c+2d=2019$$
Comme \(n\) est un nombre à quatre chiffres, \(a\neq 0\) ; par ailleurs, l’égalité ci-dessus impose \(a=1\) ou \(a=2\)
(pour \(a\geq 3, 1001 a+101 b+11 c+2d\geq 3003 \) donc l’égalité ne saurait être vérifiée).
(pour \(a\geq 3, 1001 a+101 b+11 c+2d\geq 3003 \) donc l’égalité ne saurait être vérifiée).
-
- Si \(a=1\) :
L’égalité \(1001 a+101 b+11 c+2d=2019 \) devient \(101 b+11 c+2d=1018 \)
$$\begin{array}{rl} \text{Comme} c\leq 9 \text{ et } d\leq 9 & \text{ on a } 1 c+2d\leq 99+18\\ & \text{ donc } 11 c+2d\leq 117 \\ & \text{ puis } 101b+11 c+2d\leq 101b+117\\ & 1018\leq 101b+117\\ &101b\geq 901\\ \end{array}$$ \(b\) étant un chiffre, pour satisfaire cette inégalité, il faut et il suffit que \(b=9\) $$\begin{array}{rl} \text{ Il vient ensuite : } & 909+11 c+2d=1018 \\ \text{ qui donne : } & 11 c+2d=109 \\ & \end{array}$$ - Comme \(d\leq 9\), on a \(2d \leq 18 \) donc \(11 c+2d\leq 11c+18
\)
puis \(109\leq 11c+18\)
\(11c\geq 91 \)
\(c\) étant un chiffre, pour satisfaire cette inégalité, il faut et il suffit que \(c=9\)
- On obtient enfin : \(99+2d=109\) qui donne \( d=5\).
- On peut vérifier : le nombre 1995 convient.
- Si \(a=1\) :
-
Si \(a=2 \):
L’égalité \(1001 a+101 b+11 c+2d=2019\) devient \(101 b+11 c+2d=17\)
qui impose \(b=0\) . On cherche alors les chiffres \(c \) et \(d\) tels que \(11 c+2d=17\).
La seule possibilité est \(c=1\) et \(d=3\).
On peut vérifier : le nombre 2013 convient.
Conclusion : Les seuls nombres solutions sont 1995 et 2013.
Un script Python ...
# Annee 2019
def liste_chiffres_base_dix(n):
L=[]
while n!=0:
L.append(n%10)
n=n//10
return L
print(liste_chiffres_base_dix(3251))
T=[]
for a in range(0,10):
for b in range(0,10):
for c in range(0,10):
for d in range(0,10):
e= 1000*a+100*b+10*c+d +a+b+c+d
if e==2019 :
T.append(1000*a+100*b+10*c+d)
print(T)