codingtests/solutions/ProjectEuler/043/solve.php

38 lines
1.1 KiB
PHP
Raw Normal View History

2024-06-28 08:34:07 +00:00
<?php
2024-06-28 08:34:27 +00:00
//Incredibly slow... Brute force the worse possible way
2024-06-28 08:34:07 +00:00
function pandigital($number)
{
$array = count_chars($number, 1);
ksort($array);
if ($array == array(48=> 1, 49 => 1, 50 => 1, 51 => 1, 52 => 1, 53 => 1, 54 => 1, 55 => 1, 56 => 1, 57 => 1)) {
return true;
} else {
return false;
}
}
$sum = 0;
for ($i = 1023456789; $i < 9876543210; $i++) {
//$i = 1406357289;
if (substr($i, 7, 3) % 17 == 0) {
if (substr($i, 6, 3) % 13 == 0) {
if (substr($i, 5, 3) % 11 == 0) {
if (substr($i, 4, 3) % 7 == 0) {
if (substr($i, 3, 3) % 5 == 0) {
if (substr($i, 2, 3) % 3 == 0) {
if (substr($i, 1, 3) % 2 == 0) {
echo "Close $i\n";
if (pandigital($i)) {
echo "Found: $i\n";
$sum += $i;
}
}
}
}
}
}
}
}
}
echo "Sum: $sum\n";