Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pembelajaran tatasusunan PHP mengembalikan semua faktor sepunya dan faktor sepunya terbesar antara dua nombor yang diberikan

Pembelajaran tatasusunan PHP mengembalikan semua faktor sepunya dan faktor sepunya terbesar antara dua nombor yang diberikan

青灯夜游
青灯夜游asal
2021-08-13 16:07:103748semak imbas

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:

Pembelajaran tatasusunan PHP mengembalikan semua faktor sepunya dan faktor sepunya terbesar antara dua nombor yang diberikan

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:

Pembelajaran tatasusunan PHP mengembalikan semua faktor sepunya dan faktor sepunya terbesar antara dua nombor yang diberikan

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:

Pembelajaran tatasusunan PHP mengembalikan semua faktor sepunya dan faktor sepunya terbesar antara dua nombor yang diberikan

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:

Pembelajaran tatasusunan PHP mengembalikan semua faktor sepunya dan faktor sepunya terbesar antara dua nombor yang diberikan

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:

Pembelajaran tatasusunan PHP mengembalikan semua faktor sepunya dan faktor sepunya terbesar antara dua nombor yang diberikan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn