Obtenez des conseils d'experts et des connaissances communautaires sur Zoofast.fr. Posez n'importe quelle question et obtenez une réponse détaillée et fiable de la part de notre communauté d'experts.

Bonjour j'ai un peu de mal à faire mon exercice à rendre pour demain , est-ce-qu'il y aurait quelqu'un pour m'éclairer ?

Voici l'énoncé :

On souhaite avoir une fonction nb_zeros qui détermine le nombre de zéros à la fin de l'écriture décimale d'un entier n > 0, très grand.
On s'interdit, ici, d'utiliser la fonction de conversion str.
Cette méthode est totalement inefficace avec des nombres très grands. On demande plutôt de compter combien de fois on peut diviser un nombre par 10 avec un reste égal à zéro.
Par exemple, 1. 42000 = 4200×10 + 0, 2. 4200 = 420×10 + 0, 3. 420 = 42×10 + 0, 4. 42 n'est pas divisible par 10.
On a pu diviser 42000 trois fois par 10 avec un reste égal à 0.
Ce nombre se finit donc par 3 zéros.

Code :

def nb_zeros(n):










assert nb_zeros(42000) == 3 = 1
assert nb_zeros(3210) == 0
assert nb_zeros(282475249)
assert nb_zeros(7**10000) == 0
assert nb_zeros(7**10000 * 1000) 3​

Sagot :

Nous valorisons chaque question et réponse que vous fournissez. Continuez à vous engager et à trouver les meilleures solutions. Cette communauté est l'endroit parfait pour grandir ensemble. Chaque question a une réponse sur Zoofast.fr. Merci de nous choisir et à très bientôt.