Visa ett inlägg
Oläst 2005-07-25, 19:40 #5
koalas avatar
koala koala är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Sep 2004
Inlägg: 1 154
koala koala är inte uppkopplad
Har WN som tidsfördriv
koalas avatar
 
Reg.datum: Sep 2004
Inlägg: 1 154
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...)
koala är inte uppkopplad   Svara med citatSvara med citat