Bonjour, voici un code disant si un nombre est premier

function nonpremier($n)
{
if ($n == 2) return false;
elseif (!($n & 1)) return 2;
else {
//floor retourne l'entier inférieur du nombre value
//sqrt retourne la racine carrée
$max = floor(sqrt($n));
if (!($max&1)) $max--;
return second($n, $max);
}
}
je ne comprends pas la notation suivante :
elseif (!($n & 1)) return 2;
Quelqu'un peut-il m'éclairer?[/b]