Monday, March 1, 2010

A Groovy solution for Project Euler - Problem 30

Integer.metaClass.toDigits = {
value.toString().toList().collect { it as Integer }
}
Integer.metaClass.digitsToThePowerOf = { power ->
toDigits().collect { it ** power }
}
(1000..200000).inject 0, { sum, number ->
sumOfDigitsToTheFifthPower = number.digitsToThePowerOf(5).sum()
sum += (number == sumOfDigitsToTheFifthPower) ? number : 0
}
view raw euler30.groovy hosted with ❤ by GitHub

Answer: 443839

Here is a link to the problem

No comments:

Post a Comment