๐ 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);
}
'the others > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ Graph - BFS ] ์ธ์ ํ๋ ฌ ๊ธธ ์ฐพ๊ธฐ (0) | 2021.10.13 |
---|---|
์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋๋จธ์ค ๊ฑฐ์ค๋ฆ๋ ๋ฌธ์ ํ์ด (0) | 2021.10.12 |
Dynamic Programming ๋์ ํ๋ก๊ทธ๋๋ฐ (0) | 2021.10.11 |
[ Queue ] ํ๋ฆฐํฐ (0) | 2021.10.09 |
Binary Search Tree ๊ตฌํ : pre-order / in-order / post-order (0) | 2021.09.23 |
๋๊ธ