Citat:
Ursprungligen postat av Jonas
Citat:
Ursprungligen postat av koala
Kod:
<?php
echo p(3); // Vad kommer att skrivas ut, och hur ska detta resultat tolkas?
function p($d){
return(int)$d!=$d ? isset($$_SERVER) : $d<2 ? function_exists('+') : (($d==(strlen($_SERVER['SCRIPT_FILENAME'])!= !($d===$d)) + preg_match("/l/", "linux")) ? ($_SERVER===$d) : d($d));
}
function d($d){
for ($x = !NULL + (bool)"x"; $x*$x <= $d; $x++) {
if(!($d%$x))
return !$d===$d;
}
return!$d===!$d;
}
?>
|
Får man poäng om man kan skriva den mest svår tydliga funktion???
Skulle inte skada med några <ENTER> och tabbar i den koden :P
|
Visst gör ett försök, alltid kul att klura på något. Låt oss göra det här till en knep & knåp-tråd
Så här såg min funktion ut innan jag förvrängde koden:
Kod:
function is_prime($d) {
if ((int)$d != $d) {
return false;
} else {
if ($d<2) {
return false;
} else {
if ($d==2) {
return true;
} else {
$sqrt = sqrt($d);
$x=1;
while (++$x < $sqrt+1) {
if ($d % $x == 0) {
return false;
}
}
return true;
}
}
}
}
EDIT:
Så här såg det ut innan jag drog till med alla onödigheter:
Kod:
for($i=0;$i<1000;$i++){print(p($i)?$i.'<br />':NULL);}
function p($d){return(int)$d!=$d?0:$d<2?0:($d==2?1:d($d));}
function d($d){for($x=2;$x*$x<=$d;$x++){if(!($d%$x))return 0;}return 1;}
Detta skriver ut alla primtal mellan 0 och 1000 (på tre rader kod hehe...)