the others/Algorithm

GCD (μ΅œλŒ€ κ³΅μ•½μˆ˜) & LCM (μ΅œμ†Œ 곡배수) & μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•

ciocio 2021. 11. 10. 23:28

πŸ“  GCD  :  Greatest Common Divisor  :  μ΅œλŒ€ κ³΅μ•½μˆ˜

πŸ“  LCM  :  Least Common Multiple  :  μ΅œλŒ€ 곡배수  

 

 

πŸ“Œ  μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²• ?

 

 

μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•μ€ 두 μ–‘μ˜ μ •μˆ˜ κ°„μ˜ μ΅œλŒ€ κ³΅μ•½μˆ˜λ₯Ό ꡬ할 수 μžˆλŠ” 방법이닀.

단, a κ°€ b 보닀 항상 ν¬λ‹€λŠ” μ „μ œκ°€ μžˆμ–΄μ•Ό μ„±λ¦½ν•œλ‹€. -> λ‹Ήμ—°ν•œ μ΄μ•ΌκΈ°μΈκ²Œ, a = bq + r κ³΅μ‹μ—μ„œ 이미 bλŠ” a의 μ•½μˆ˜λ‘œ 속해 μžˆλ‹€.

a = bq + r 식은 a와 b κ°„μ˜ 관계λ₯Ό μ •μ˜ν•œ 식이닀. -> aκ°€ b 보닀 크닀면, b*q κ°’κ³Ό μ–΄λ–€ λ‚˜λ¨Έμ§€ μ •μˆ˜κ°€ 더해져 aλ₯Ό μ™„μ„±ν•  것이닀.

 

μ—¬κΈ°μ„œ λ‚˜λ¨Έμ§€ κ°’(r) 이 0이게 되면 a와 b μ‚¬μ΄μ—μ„œλŠ” bκ°€ κ°€μž₯ 큰 μ΅œλŒ€ κ³΅μ•½μˆ˜κ°€ λ˜λŠ” 것이닀 ! 

λ§Œμ•½ r이 0이 μ•„λ‹ˆλΌλ©΄ ? r은 b와 μ–΄λ–€ μ •μˆ˜ q의 곱으둜 a 근사값을 λ§Œλ“€μ–΄ 놓고, " a와 a κ·Όμ‚¬κ°’μ˜ μ°¨ "  라고 μ •μ˜ν•  수 μžˆλ‹€.

μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•μ€ 0이 μ•„λ‹Œ rκ³Ό b μ‚¬μ΄μ˜ μ΅œλŒ€ κ³΅μ•½μˆ˜κ°€ a와 b의 μ΅œλŒ€κ³΅μ•½μˆ˜κ°€ κ°™λ‹€λŠ” 결둠을 λ„μΆœν•œ 곡식이닀.

 

κ²°κ΅­, μš°λ¦¬λŠ” ' b ' λ₯Ό κ΅¬ν•˜κΈ° μœ„ν•΄ 애써야 ν•œλ‹€. 

 

 

 

πŸ“Œ  μ½”λ“œλ‘œ κ΅¬ν˜„

 

// μ΅œλŒ€ κ³΅μ•½μˆ˜
function GCD(a, b){
  if(a % b === 0){
  	return b;
  }
  return gcd(b, a % b);
}

 

// μ΅œμ†Œ 곡배수
function LCM(a, b){
  return a * b / GCD(a, b);
}

 

λ°˜μ‘ν˜•