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);
看看结果:
可以看出数30的因数有:1、2、3、5、6、10、15。
利用上述的方法我们再获取数40的所有因数,将它们存到一个数组$arr2中:
可以看出数40的因数有:1、2、4、5、8、10、20。
2、两个整数的所有因数都获取了,就可以使用array_intersect()函数来求它们间的所有公因数了。(array_intersect()函数可以计算两个数组的交集,不懂可以阅读《PHP数组学习之如何比较两个数组求交集》)。
$result=array_intersect($arr1,$arr2); var_dump($result);
输出结果为:
这样就可以得出数30和40的所有公因数:1、2、5、10。
3、30和40的所有公因数都在交集数组$result
中,我们就可以使用max()
$max=max($result); echo "最大公因数为: $max";
On voit que les facteurs du nombre 40 sont : 1, 2, 4, 5, 8, 10, 20 .
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》). De cette façon, nous pouvons obtenir tous les facteurs communs des nombres 30 et 40 : 1, 2, 5, 10. 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!<?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);
?>
$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 ! 🎜