Entrée : 21 Sortie : Non Premier Entrée : 31 Sortie : PremierMéthode simple :
Une solution simple consiste à itérer sur tous les nombres de 2 à n / 2 et, pour chaque nombre, vérifier s`il divise n. Si nous trouvons un nombre divisible, nous renverrons 0 (faux), sinon nous renverrons 1 (vrai). Voici l`implémentation PHP de cette approche :
// code PHP pour vérifier si un nombre est premier ou non
// fonction pour vérifier si le nombre est primaire ou non
fonction
primeCheck (
$number
) {/code>
if
(
$number
== 1)
return
0 ;
for
(
$i
= 2;
$i
< =
$nombre
/ 2 ;
$i
++) {
if
(
$number
%
$i
== 0)
retour
0 ;
}
retour
1 ;
}
// Code conducteur
$number
= 31 ;
$flag
= primeCheck (
$number
);
si
(
$flag
== 1)
echo
"Prime"
;
else
echo
" Not Prime "
?>
Sortie :Complexité en temps premier : O (n)Méthode efficace :
Nous pouvons optimiser l`approche ci-dessus en observant qu`au lieu de vérifier jusqu`à n, nous pouvons vérifier jusqu`à sqrt (n), puisque le plus grand facteur n doit être un multiple du plus petit facteur qui a déjà été testé. Nous allons donc parcourir la plage [2, sqrt (nombre)] pour vérifier si le nombre est divisible par un nombre ou non. Si c`est un dividende, alors ce n`est pas un nombre premier. Voici l`implémentation de cette approche en PHP :
// code PHP pour vérifier si le nombre est premier ou non
// fonction pour vérifier si le nombre est si le nombre est primaire ou non
fonction
primeCheck (
$number
) {
if
(
$nombre
== 1)
retour
0 ;
pour
(
$i
= 2 ;
$i
< = sqrt (
$nombre
);
$i
++) {
if
(
$number
%
$i
== 0)
retour
0 ;
}
retour
1 ;
}
// Code conducteur
$number
= 31 ;
$flag
= primeCheck (
$nombre
);
if
(
$flag
== 1)
echo
"Prime"
;
else
echo
" Not Prime "
?>
Sortie :Prime Time complexity : O ( sqrt (n))