Maison > développement back-end > tutoriel php > 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

青灯夜游
Libérer: 2023-04-10 15:12:01
original
3770 Les gens l'ont consulté

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;
}
Copier après la connexion
  • Étape 2 : Rechercher < code>a/b< /code> Le reste, la valeur est attribuée à ra/b 的余数,值赋给 r

$r = $a % $b;
Copier après la connexion
  • 第三步:判断 余数r 是否为0。

    如果 r=0,则上面的b就是最大公约数;如果 r!=0

  • while ($r != 0) {
    		$a = $b;
    		$b = $r;
    		$r = $a % $b;
    	}
    Copier après la connexion
  • É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);
?>
Copier après la connexion


É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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal