[Algorithm] GCD - LCM / FPB - KPK
Categories: Algoritma, Programming | May 13th, 2008 | by Felix J | 10 CommentsLCM membutuhkan algoritma GCD diatas..
Ternyata setelah diteliti, LCM pun memiliki algoritma yang lebih cepat yaitu,
LCM(a, b) = (a*b) / GCD(a, b)
Mari kita buktikan… Kita tetap memakai 2 bilangan diatas, yaitu 24 dan 20… Menurut rumus LCM tersebut maka
LCM(24, 20) = (24 * 20) / GCD(24, 20)
Seperti kita ketahui, GCD(24, 20) adalah 4 maka kita sederhanakan saja persamaan diatas menjadi
LCM (24, 20) = (24 * 20) / 4
Dengan sifat pembagian, maka kita coba sederhanakan lagi menjadi
LCM(24, 20) = ((24 / 2) * (20 / 2))
LCM(24, 20) = (12 * 10)
LCM(24, 20) = 120
Apakah benar? Mari kita coba lagi dengan matematik ‘Anak SD’ lagi untuk membuktikannya… Mari Kita lihat lagi Faktor Prima kedua angka tersebut yang sudah tertulis diatas… maka LCM dari ke-2 bilangan ini dapat disusun menjadi
LCM(24, 20) = 2³ x 3 x 5 = 8 x 3 x 5 = 40 x 3 = 120
Terbukti kan? oleh karena itu, maka kita dapat membuat Kode LCM dari kode persamaan diatas
1 2 3 4 | int LCM(int a, int b) { return ((a*b) / GCD(a,b)); } |
Maka dengan ini, selesailah sudah pelajaran untuk hari ini
hehehe…
Akhir kata, Semoga artikel ini bermanfaat bagi anda sekalian
- Felix J
wow… GCD nya simple banget… pernah coba bikin sih tp lbh panjang dari itu kyknya… LCM juga pernah bkn tp ga pake GCD nya sama sekali..
@ Hendri
^o^
ohh.. hehehe… iya, ini namanya Euclidean GCD
sebenarnya bs dibuat lebih singkat lg ^o^
int GCD(int a,int b) {
return (b==0) ? a : GCD(b,a%b);
}
^o^
wew..ada pak felix ni ye….
mo tanya dung tpi….klo a<b apa gak crash ya prognya?thx b4…
@vedro,
Gk dunk, dengan jelas kita tahu bahwa jika a<b maka tentu aja di step rekursi selanjutnya akan dirubah a itu menjadi b, dan b menjadi a… liat contoh ini :
sebut saja jika kita memanggil, GCD(7,13), maka Karena B adalah 13, GCD(7,13) akan return GCD(13,7%13).
Kita tahu bahwa jika a < b, maka a%b = a. maka dari itu, GCD(13,7%13), ekuivalen dengan GCD(13,7) ( See? A > B sekarang
).
Proses berlanjut sampe b == 0, Gitu aja
interesting post, will come back here, bookmarked your site
ternyata GCD pake rekursi simple..
@boen,
yup… GCD bisa dicari dengan cara diatas
You write awsome article, bookmarked
Bung Felix, nyari GCD pake algoritma tadi ada kelemahannya g?
mhon dijawab butuh buat tugas nih
@adi belajar TI,
sayangnya… Tak ada