Persoalan FPB - playmakermz/warkop-website GitHub Wiki

soal dengan tiga parameter

class FPB{
  constructor(dataX,dataY, dataZ){
    this.x = dataX;
    this.y = dataY;
    this.z = dataZ
  }

  hasil(){
    const listX = []
    const listY = []
    const listZ = []
    let jawaban = []
    
    for (let i = 1; i <= this.x; i++){
      if (this.x % i === 0){
        //listX.push()
        listX.push(i)
      }
    }// akhir loop x

    for (let i = 1; i <= this.y; i++){
      if(this.y % i === 0){
        listY.push(i)
      }
    }// akhir loop y

    for (let i = 1; i <= this.z; i++){
      if(this.z % i === 0){
        listZ.push(i)
      }
    }// akhir loop z
    
    let hasil = []
    
    for (let i of listX){
      if (listY.includes(i)){
        if(listZ.includes(i)){
           hasil.push(i)
        }
      }
    }
    
    console.log(hasil)
    jawaban = Math.max(...hasil)
    return jawaban
  }// akhir function
}// akhir class

obj = new FPB(18, 54, 36)
console.log(obj.hasil())

dengan tujuan untuk menyelesaikan soal FPB degan 3 parameter.

Pendekatan yang digunakan

Adalah mencari nilai tertinggi di setiap list parameter, yang dimana nilai tertinggi tersebut bisa membagi A dan B.

Algotima yang digunakan

  • Siapkan 3 array
  • 2 untuk paramter, dan 1 untuk jawaban
  • untuk setiap paramter, buat loop yang akan berjalan dari nilai 1 ke nilai "n" parameter.
  • dan lakukan pembagian nilai "n" parameter modulus dengan nilai "i" dari loop 1-n.
  • dengan tujuan untuk memastikan hasil pembagian mereka samadengan nol n % i === 0
  • buat array baru untuk menyimpan nilai yang ada di setiap paramter array.
  • lalukembalikan nilai yang paling besar.

Ref