Lucas Willems

LUCAS WILLEMS

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

English

Project Euler 29 : solution Python

Article

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

How many distinct terms are in the sequence generated by \(a^b\) for \(2 \leq a \leq 100\) and \(2 \leq b \leq 100\) ?

Compréhension du problème

Reformulons le problème : il nous faut trouver le nombre de termes distincts pouvant être générés par \(a^b\) avec \(2 \leq a \leq 100\) et \(2 \leq b \leq 100\). Pour résoudre ce problème, la façon la plus simple, à mon sens, consiste à :

Même si cette méthode est relativement simple à mettre en place et assez rapide à exécuter, elle n'est sûrement pas optimale.

Le programme

Voici le programme Python que nous pouvons utiliser pour résoudre ce problème :

powers = []
for a in range(2, 101):
    for b in range(2, 101):
        powers.append(a**b)
#Suppresion de tous les doublons de la liste powers
resultat = len(list(set(powers)))
print(resultat)

Le résultat

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

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.