My first Magazine pemrograman-kompetitif-dasar | Page 25
2.3 FPB dan KPK
2.3
FPB dan KPK
Ketika masih SD, kita pernah belajar memfaktorkan bilangan dengan pohon faktor. Melalui
faktorisasi prima, kita dapat menyatakan suatu bilangan sebagai hasil perkalian faktor primanya.
Contoh: 7875 = 3 2 × 5 3 × 7.
Faktor Persekutuan Terbesar (FPB) dan Kelipatan Persekutuan Terkecil (KPK) dapat dicari
melalui faktorisasi prima. Untuk setiap bilangan prima, kita menggunakan pangkat terkecil untuk
FPB dan pangkat terbesar untuk KPK.
Sebagai contoh, diketahui:
• 4725 = 3 3 × 5 2 × 7
• 7875 = 3 2 × 5 3 × 7
Maka:
• FPB(4725, 7875) = 3 2 × 5 2 × 7 = 1525
• KPK(4725, 7875) = 3 3 × 5 3 × 7 = 23625
Sebagai catatan, terdapat pula sifat:
KPK(a, b) =
a × b
FPB(a, b)
Pencarian FPB suatu bilangan menggunakan pohon faktor cukup merepotkan. Kita perlu
mencari faktor prima bilangan tersebut, dan jika faktor primanya besar, tentu akan menghabiskan
banyak waktu. Terdapat algoritma yang dapat mencari FPB(a, b) dalam O(log (min (a, b))), yaitu
Algoritma Euclid. 8
Algoritma ini sangat pendek, dan dapat diimplementasikan dengan mudah seperti pada
Algoritma 7.
Algoritma 7 Algoritma Euclid untuk mencari FPB secara rekursif.
1:
2:
3:
4:
5:
6:
7:
function EUCLID (a, b)
if b = 0 then
return a
else
return EUCLID (b, a mod b)
end if
end function
2.4
Pigeonhole Principle (PHP)
Konsep PHP berbunyi:
Jika ada N ekor burung dan M sangkar, yang memenuhi N > M, maka pasti ada sangkar
yang berisi setidaknya 2 ekor burung.
15