๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
the others/Algorithm

GCD (์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜) & LCM (์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜) & ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•

by ciocio 2021. 11. 10.

๐Ÿ“  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);
}

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€