PHP Vérifier si un nombre est premier

| | | | | | | | | | | | |
Exemples :
Entrée : 21 Sortie : Non Premier Entrée : 31 Sortie : Premier
Mé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))