Problème 48 une fonction particulière , le corrigé
Maths ...
Problèmes de l'année 2018-2019
Problème n ° 48
Une fonction particulière, le corrigé
Soit \(f\) la fonction définie sur l’ensemble des entiers naturel par : l’image d’un entier \(n\) est le plus petit chiffre de son écriture décimale (en base 10). Par exemple : \(f(2015) = 0\) Que vaut : \(f(100) + f(101) + f(102) + ... + f(998) + f(999) \)?
On peut procéder ainsi : Il y a un seul nombre dont l’image est 9. Il y a 7 nombres dont l’image est 8 : 988, 989, 899, 889, 898, 988, 888. Il y a 19 nombres dont l’image est 7 : 997, 979, 799, 887, 878, 788, 779, 797, 977, 778, 787, 877, 987, 978, 897, 879, 798, 789 et 777. Il y a 37 nombres dont l’image est 6, Il y a 61 nombres dont l’image est 5, Il y a 91 nombres dont l’image est 4, Il y a 127 nombres dont l’images est 3, Il y a 169 nombres dont l’image est 2 et Il y a 217 nombres dont l’image est 1. On peut remarquer que 7 = 1 + 6 ; 19 = 7 + 12 ; 37 = 19 + 18 et ainsi de suite. La somme à chercher est donc : $$9\times 1+8\times 7+7\times19+...+1\times217=2025$$ On peut aussi vérifier qu’il y a 171 nombres dont l’image est 0 et qu’en ajoutant $$1+7+19+37+....+217+171=900$$ on retrouve les 900 nombres de 100 à 999. Conclusion : $$f(100) + f(101) + f(102) + ... + f(998) + f(999)=2025$$
# Probleme une fonction particuliere def liste_chiffres_base_dix(n): L=[] while n!=0: L.append(n%10) n=n//10 return L print(liste_chiffres_base_dix(1234)) def f(n): y=min(liste_chiffres_base_dix(n)) return y print(f(2018)) S=0 for i in range(99,999) : S=S+f(i) print(S)