Bonjour,

Un peu de sourires, sur la base d'un défi qui m'a été lancé par un développeur très compétent en Ruby:

=> Trouver les nombres de Münchhausen entre 1 et 10 000 (voir http://fr.wikipedia.org/wiki/Nombre_de_M%C3%BCnchhausen si beoin), nombres tels que

Nm = abcde (5 digits, (a..e) étant compris entre 0 et 9 (Nm entre 1 et 10 000)
et
Nm = a^a + b^b + c^c + d^d + e^e (en supposant que 0^0 = 0)

Exemples:
1 => 1^1
2 => 2^2
35 => 3^3 + 5^5
(...)

Pour ma part, j'ai trouvé (11 lignes de VBA, sans les déclarations)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Nombre de Munchausen:
1, 3435
calculés en 15.625 ms
et le code en Ruby est ... hallucinant de compacité:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
p [*1..9999].select { |i| i == i.to_s.unpack('c*').map(&:chr).map(&:to_i).map{|e| e**e}.reduce(&:+) }
Bonne journée!