I previously blogged about this Project Euler puzzle nearly 6 years ago, using Python. This is my approach using PHP as a simple practical exercise for myself, and I’d appreciate any feedback on my PHP code.

Problem 30:

*Surprisingly there are only three numbers that can be written as the sum of fourth powers of their digits:*

*1634 = 1*^{4} + 6^{4} + 3^{4} + 4^{4}

8208 = 8^{4} + 2^{4} + 0^{4} + 8^{4}

9474 = 9^{4} + 4^{4} + 7^{4} + 4^{4}

*As 1 = 1*^{4} is not a sum it is not included.

*The sum of these numbers is 1634 + 8208 + 9474 = 19316.*

*Find the sum of all the numbers that can be written as the sum of fifth powers of their digits.*

Code:

<?php
$powers = [];
$grandtotal = 0;
foreach (range(2, 354294) as $i) {
$total = 0;
for ($j = 0; $j < strlen($i); $j++) {
$total += pow(substr($i, $j, 1), 5);
}
if ($total == $i) {
$powers[] = $i;
}
}
foreach ($powers as $i) {
$grandtotal += $i;
}
echo $grandtotal;

Nothing too fancy, very similar to my Python approach.

### Like this:

Like Loading...

*Related*

## Leave a Reply