Her er scriptet... det virker
<?PHP
$found; //Sikrer at der ikke undersøges både X * Y og Y * X, hvis X * Y er et palindron
$palins; //Sikrer at der ikke findes mere end en kombination der giver et allerede fundet palindron
function isPalindron($number){
$palindron = true;
$number = (string) $number;
$i = 0;
$j = strlen($number)-1;
while ($i < $j){
if ($number{$i} != $number{$j}) $palindron = false;
$i++;
$j--;
}
return $palindron;
}
for($x = 1; $x < 1000; $x++){
for($y = 1; $y < 1000; $y++){
if ($x * $y >= 1000 || $found[$x][$y] || $palins[$x*$y]) continue; //Kontrollinje
if(isPalindron($x*$y)){
echo "X: " . $x . " Y: " . $y . " X*Y: " . ($x*$y) . " is a palindrom" . "";
$found[$x][$y] = ($found[$y][$x] = 1);
$palins[$x*$y] = 1;
}
}
}
?>
Hvis du vil have gentagne palindromer, med forskellige X * Y kombinationer, skal du bare fjerne $palins[$x*$y] fra kontrollinjen.
Hvis du vil have både X * Y og Y * X, altså symmetrisk, skal du bare fjerne $found[$x][$y] fra kontrollinjen...
Scriptet er testet og det fungerer...[Redigeret d. 07/11-02 14:35:21 af Erik K. Aarslew-Jensen]