Dans l'article précédent "Apprentissage des tableaux PHP : renvoyer tous les facteurs communs et le plus grand diviseur commun entre deux nombres donnés", nous avons présenté une méthode pour obtenir tous les facteurs communs de deux entiers et trouver la méthode du plus grand diviseur commun. Cette fois, nous allons vous présenter une méthode pour trouver le plus grand diviseur commun. Les amis intéressés peuvent en apprendre davantage ~
Dans l'article précédent, nous avons mis tous les facteurs de deux entiers dans deux tableaux, puis utilisons la fonction array_intersect(). pour trouver l'intersection des deux tableaux, et vous obtiendrez un tableau contenant tous les facteurs communs ; puis utilisez la fonction max() pour calculer le nombre maximum dans le tableau d'intersection, et vous obtiendrez le plus grand facteur commun.
N'est-ce pas un peu gênant ? Nous devons découvrir tous les facteurs un par un, puis calculer tous les facteurs communs, et enfin trouver le plus grand diviseur commun. Voici une méthode simple et générale (peut être utilisée dans d'autres langues).
Cette fois, nous n'utilisons pas les fonctions intégrées de PHP, mais utilisons les instructions de jugement if et les instructions de boucle while pour trouver le plus grand diviseur commun entre deux entiers donnés.
Étapes de mise en œuvre : il y a deux variables a, b
Première étape : assurez-vous que les grands nombres sont placés dans a et les petits nombres dans b.
Cela nécessite l'utilisation d'instructions if pour juger. Si a
if ($a < $b) { //a < b,则交换两个数 $temp = $a; $a = $b; $b = $temp; }
Étape 2 : Rechercher < code>a/b< /code> Le reste, la valeur est attribuée à ra/b
的余数,值赋给 r
$r = $a % $b;
第三步:判断 余数r 是否为0。
如果 r=0
,则上面的b就是最大公约数;如果 r!=0
while ($r != 0) { $a = $b; $b = $r; $r = $a % $b; }
r=0
, alors b ci-dessus est le plus grand diviseur commun ; si r!=0
, vous devez attribuer la valeur de b à a et la valeur de r Étant donné b, continuez à trouver le reste de a/b et déterminez si le reste r est 0. Cela nécessite l'utilisation d'une boucle (une boucle while est utilisée ici) : <?php header("Content-type:text/html;charset=utf-8"); function gcd($a, $b) { $a1 = $a; $b1 = $b; if ($a < $b)//a < b,则交换两个数 { $temp = $a; $a = $b; $b = $temp; } $r = $a % $b; while ($r != 0) { $a = $b; $b = $r; $r = $a % $b; } echo "数$a1 和$b1 的最大公因数为: $b <br><br>"; } gcd(30, 40); gcd(12, 16); gcd(15, 12); ?>
Étape 4 : Afficher le plus grand facteur commun b.
rrreeeRésultat de sortie :
D'accord, c'est tout si vous voulez savoir autre chose, vous pouvez cliquer ici. → →Tutoriel vidéo PHP
🎜🎜🎜Recommandé :🎜"🎜Collection de questions d'entretien PHP (collection)🎜"🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!