Rumah > Artikel > pembangunan bahagian belakang > Pembelajaran tatasusunan PHP mengembalikan semua faktor sepunya dan faktor sepunya terbesar antara dua nombor yang diberikan
Dalam artikel sebelumnya "Pembelajaran Tatasusunan PHP: Menukar Huruf Besar atau Huruf Kecil Kekunci/Nilai", kami memperkenalkan kaedah menukar kes nama kunci tatasusunan atau nilai kunci dalam tatasusunan bersekutu PHP . Kali ini kita melihat bagaimana untuk mendapatkan semua faktor sepunya dua integer dan mencari nombor faktor sepunya terbesar (anggaran) Rakan-rakan yang berminat boleh mempelajarinya~
Pertama sekali, mari kita fahami apa itu . Nombor faktor sepunya (anggaran) dan nombor faktor sepunya terbesar (anggaran) ?
Nombor faktor (hampiran) ialah nombor yang boleh membahagi integer Nombor faktor sepunya (hampiran) ialah nombor yang boleh membahagi beberapa integer. masa yang sama. Mungkin terdapat berbilang pembahagi sepunya yang boleh membahagi beberapa integer pada masa yang sama, dan yang terbesar ialah faktor sepunya terbesar.
Contohnya: nombor 30 dan 40, faktor sepunya ialah 1, 2, 5, dan 10 adalah yang terbesar, jadi faktor sepunya terbesar bagi nombor 30 dan 40 ialah 10.
Jadi bagaimana kita menggunakan PHP untuk mendapatkan faktor sepunya dan faktor sepunya terbesar antara dua integer a dan b?
Idea:
1. Dapatkan faktor antara dua integer a dan b masing-masing (ini diterangkan secara terperinci dalam Pembelajaran Gelung PHP 8), Kemudian simpan faktor ini ke dalam tatasusunan. Di sini, ambil nombor 30 sebagai contoh, gunakan gelung for untuk mencari semua faktor:
for($i=1;$i<30;$i++){ if($a%$i==0){//分解因数 $arr1[]=$i; } }
Output tatasusunan ini $arr1
var_dump($arr1);
Lihat hasilnya:
Dapat dilihat bahawa faktor nombor 30 ialah: 1, 2, 3, 5, 6, 10, 15.
Menggunakan kaedah di atas, kita mendapatkan semua faktor nombor 40 dan menyimpannya dalam tatasusunan $arr2:
Ia boleh dilihat bahawa nombor 40 Faktornya ialah: 1, 2, 4, 5, 8, 10, 20.
2 Selepas semua faktor dua integer telah diperoleh, anda boleh menggunakan fungsi array_intersect() untuk mencari semua faktor sepunya di antara mereka. (Fungsi array_intersect() boleh mengira persilangan dua tatasusunan. Jika anda tidak faham, anda boleh membaca "Pembelajaran Tatasusunan PHP: Cara Membandingkan Dua Tatasusunan untuk Mencari Persimpangan").
$result=array_intersect($arr1,$arr2); var_dump($result);
Hasil keluarannya ialah:
Dengan cara ini, anda boleh mendapatkan semua faktor sepunya bagi nombor 30 dan 40: 1, 2 , 5, 10.
Semua faktor sepunya 3, 30 dan 40 berada dalam tatasusunan persilangan $result
, jadi kita boleh menggunakan fungsi max()
untuk mendapatkan nombor terbesar dalam tatasusunan, yang merupakan faktor sepunya terbesar.
$max=max($result); echo "最大公因数为: $max";
Hasil output ialah:
OK, selesai! Bungkus kod di atas dalam fungsi:
<?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); ?>
Hasil keluaran:
Itu sahaja buat masa ini, ada yang lain Jika anda mahu tahu, anda boleh klik ini. → →Tutorial video php
Akhir sekali, saya mengesyorkan tutorial video percuma tentang tatasusunan PHP: Penjelasan video fungsi tatasusunan fungsi PHP, datang dan pelajari!
Atas ialah kandungan terperinci Pembelajaran tatasusunan PHP mengembalikan semua faktor sepunya dan faktor sepunya terbesar antara dua nombor yang diberikan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!