Lucas Willems

LUCAS WILLEMS

Un étudiant de 27 ans passionné par les maths et la programmation

English

Project Euler 20 : solution Python

Article

Voici un résumé de l'énoncé du problème 20 "Factorial digit sum" du Project Euler (traduction complète en français ici) :

Find the sum of the digits in the number \(100!\)

Compréhension du problème

Reformulons le problème : il nous faut trouver la somme des chiffres du nombre \(100!\). Pour résoudre ce problème, je ne vois qu'une seule solution, qui suit celle proposée dans l'énoncé, et qui consiste à :

  1. trouver la valeur de 100!
  2. convertir le nombre obtenu en chaîne de caractère
  3. lire les chiffres 1 par 1 et les additionner
  4. afficher cette somme

Cette solution est relativement simple à mettre en place et permet aussi d'obtenir très rapidement la réponse.

Le programme

Voici le programme Python que nous pouvons utiliser :

import math
fact = str(math.factorial(100))
resultat = 0
for i in fact:
    resultat += int(i)
print(resultat)

Vous remarquerez que Python possède, si on importe au préalable la bibliothèque math, une fonction permettant de calculer les factorielles de nombre, et ce en très peu de temps, ce qui n'est pas le cas de tous les algorithmes prévus à cet effet !

Le résultat

La réponse à ce problème est 648.

Recherche

Voici les recherches relatives à cette page :

Commentaires

Qu'en pensez-vous ? Donnez moi votre avis (positif ou négatif) pour que je puisse l'améliorer.