Maison  >  Article  >  développement back-end  >  PHP Loop Learning 9 : Obtenir le plus grand facteur commun entre deux nombres donnés

PHP Loop Learning 9 : Obtenir le plus grand facteur commun entre deux nombres donnés

青灯夜游
青灯夜游original
2021-08-13 16:58:553640parcourir

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 a/b 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;
    	}
  • Étape 3 : Déterminez si le reste r est 0.

    Si 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.

PHP Loop Learning 9 : Obtenir le plus grand facteur commun entre deux nombres donnés

Jetons un œil au code d'implémentation :

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn