Maison  >  Article  >  développement back-end  >  L'apprentissage des tableaux PHP renvoie tous les facteurs communs et le plus grand facteur commun entre deux nombres donnés

L'apprentissage des tableaux PHP renvoie tous les facteurs communs et le plus grand facteur commun entre deux nombres donnés

青灯夜游
青灯夜游original
2021-08-13 16:07:103759parcourir

Dans l'article précédent "Apprentissage des tableaux PHP : changer les majuscules ou les minuscules des clés/valeurs", nous avons présenté la méthode de changement de la casse des noms de clés de tableau ou des valeurs de clés dans les tableaux associatifs PHP. Cette fois, nous voyons comment obtenir tous les facteurs communs de deux nombres entiers et trouver le plus grand nombre de facteur commun (approximatif). Les amis intéressés peuvent en apprendre davantage ~

Tout d'abord, comprenonsQuel est le facteur commun (approximatif). nombre ? Et le plus grand nombre de facteur commun (approximatif) ?

Le nombre facteur (approximation) fait référence au nombre qui peut diviser un entier. Le nombre facteur commun (approximation) est le nombre qui peut diviser plusieurs entiers en même temps. Il peut y avoir plusieurs diviseurs communs capables de diviser plusieurs entiers en même temps, et le plus grand est le plus grand facteur commun.

Par exemple : les nombres 30 et 40, leurs facteurs communs sont 1, 2, 5 et 10 ; 10 est le plus grand, donc le plus grand facteur commun des nombres 30 et 40 est 10.

Alors, comment utiliser PHP pour obtenir les facteurs communs et le plus grand facteur commun entre deux entiers a et b ?

Idées :

1. Obtenez les facteurs compris entre deux entiers a et b respectivement (ceci est décrit en détail dans PHP Loop Learning 8), puis stockez ces facteurs respectivement dans un tableau. Ici, prenons le nombre 30 comme exemple, utilisez une boucle for pour trouver tous les facteurs :

for($i=1;$i<30;$i++){
    if($a%$i==0){//分解因数
        $arr1[]=$i;
    }
}

Sortez ce tableau $arr1$arr1

var_dump($arr1);

看看结果:

Lapprentissage des tableaux PHP renvoie tous les facteurs communs et le plus grand facteur commun entre deux nombres donnés

可以看出数30的因数有:1、2、3、5、6、10、15。

利用上述的方法我们再获取数40的所有因数,将它们存到一个数组$arr2中:

Lapprentissage des tableaux PHP renvoie tous les facteurs communs et le plus grand facteur commun entre deux nombres donnés

可以看出数40的因数有:1、2、4、5、8、10、20。

2、两个整数的所有因数都获取了,就可以使用array_intersect()函数来求它们间的所有公因数了。(array_intersect()函数可以计算两个数组的交集,不懂可以阅读《PHP数组学习之如何比较两个数组求交集》)。

$result=array_intersect($arr1,$arr2);
var_dump($result);

输出结果为:

Lapprentissage des tableaux PHP renvoie tous les facteurs communs et le plus grand facteur commun entre deux nombres donnés

这样就可以得出数30和40的所有公因数:1、2、5、10。

3、30和40的所有公因数都在交集数组$result中,我们就可以使用max()

$max=max($result);
echo "最大公因数为: $max";

Regardez le résultat :

Lapprentissage des tableaux PHP renvoie tous les facteurs communs et le plus grand facteur commun entre deux nombres donnésLapprentissage des tableaux PHP renvoie tous les facteurs communs et le plus grand facteur commun entre deux nombres donnés

On peut voir que les facteurs de les nombres 30 sont : 1, 2, 3,5,6,10,15.

En utilisant la méthode ci-dessus, nous obtenons tous les facteurs du nombre 40 et les stockons dans un tableau $arr2 :


Lapprentissage des tableaux PHP renvoie tous les facteurs communs et le plus grand facteur commun entre deux nombres donnés

On voit que les facteurs du nombre 40 sont : 1, 2, 4, 5, 8, 10, 20 . Lapprentissage des tableaux PHP renvoie tous les facteurs communs et le plus grand facteur commun entre deux nombres donnés

2. Une fois que tous les facteurs des deux entiers ont été obtenus, vous pouvez utiliser la fonction array_intersect() pour trouver tous les facteurs communs entre eux. (La fonction array_intersect() peut calculer l'intersection de deux tableaux. Si vous ne comprenez pas, vous pouvez lire "PHP Array Learning Comment comparer deux tableaux pour trouver l'intersection

》).

<?php
header("Content-type:text/html;charset=utf-8");
function gcd($a,$b){
$arr1=array();
$arr2=array();
for($i=1;$i<$a;$i++){
    if($a%$i==0){//分解因数
        $arr1[]=$i;
    }
}
for($i=1;$i<$b;$i++){
    if($b%$i==0){//分解因数
        $arr2[]=$i;
    }
}

$result=array_intersect($arr1,$arr2);
echo "数 $a 和 $b 的公因(约)数有:";
foreach($result as $value){
	echo $value." , ";
}

$max=max($result);
echo "<br>最大公因数为: $max  <br><br>";
}
gcd(30,40);
gcd(12,16);
?>
Le résultat de sortie est :

3 . pngDe cette façon, nous pouvons obtenir tous les facteurs communs des nombres 30 et 40 : 1, 2, 5, 10.

🎜Tous les facteurs communs de 3, 30 et 40 sont dans le tableau d'intersection $result, nous pouvons utiliser la fonction max() pour obtenir le plus grand nombre du tableau , C'est le plus grand facteur commun. 🎜rrreee🎜Le résultat de sortie est : 🎜🎜🎜🎜🎜OK, c'est fait ! Encapsulez le code ci-dessus dans une fonction : 🎜rrreee🎜Résultat de sortie : 🎜🎜🎜🎜🎜🎜C'est tout Si vous voulez savoir autre chose, vous pouvez cliquer dessus. → →🎜Tutoriel vidéo php🎜🎜🎜Enfin, je recommande un tutoriel vidéo gratuit sur les tableaux PHP : 🎜Explication vidéo de la fonction tableau de fonctions PHP🎜, venez apprendre ! 🎜

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