์ต์๊ณต๋ฐฐ์(LCM) ํ ๋ฐฉ์ ๋๋ด๊ธฐ: lcm = a*b // gcd(a,b) + ๋์

ํ๋ก๊ทธ๋๋จธ์ค์์ ์์ฃผ ๋์ค๋ ๋ฌธ์ ์ค ํ๋๊ฐ “๋ฐฐ์ด์ ์๋ ์ซ์๋ค์ ์ต์๊ณต๋ฐฐ์(LCM)๋ฅผ ๊ตฌํ๋ผ” ์
๋๋ค.
ํผ๋ณด๋์น์ฒ๋ผ ์ปค์ง ์ ์๋ ๊ฐ๋ ์๋๊ณ , ์ํ ๊ณต์ ํ๋๋ง ์ดํดํ๋ฉด ์ฝ๋๊ฐ ์์ฒญ ๋จ์ํด์ ธ์.
ํต์ฌ ์์ด๋์ด 1) GCD(์ต๋๊ณต์ฝ์)์ LCM(์ต์๊ณต๋ฐฐ์)์ ๊ด๊ณ
๋ ์ ์ a, b์ ๋ํด ๋ค์์ด ํญ์ ์ฑ๋ฆฝํฉ๋๋ค.
- lcm(a, b) = a * b // gcd(a, b)
์๋๋ฉด, g = gcd(a,b)๋ผ๊ณ ํ ๋
a = g * a', b = g * b'๋ก ์ธ ์ ์๊ณ (๊ณตํต์ธ์ g๋ฅผ ๋ฝ์๋ธ ํํ),
์ด๋ a'์ b'๋ ์๋ก์๋ผ์(๊ฒน์น๋ ์ธ์๊ฐ ์์) ๋ ์๋ฅผ ๋ชจ๋ ํฌํจํ๋ ์ต์ ๋ฐฐ์๋
- lcm(a,b) = g * a' * b'
๊ฐ ๋ฉ๋๋ค.
๋ํ a*b = (g*a')*(g*b') = g^2 * a' * b' = g * (g*a'*b') = g * lcm(a,b) ์ด๋ฏ๋ก
๊ฒฐ๊ตญ lcm(a,b) = a*b / g๊ฐ ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ LCM์ ์ ์์ด๊ธฐ ๋๋ฌธ์ ๋๋์ ์ /๊ฐ ์๋๋ผ ์ ์ ๋๋์ // ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
ํต์ฌ ์์ด๋์ด 2) ๋ฐฐ์ด ์ ์ฒด LCM์ “์์์๋ถํฐ ๋์ ”
๋ฐฐ์ด arr = [a, b, c, ...]์ ์ต์๊ณต๋ฐฐ์๋
- lcm(a, b, c, ...) = lcm(lcm(a, b), c, ...)
์ฒ๋ผ ์์์ ์๊ด์์ด ๋์ ํด์ ๊ตฌํ ์ ์์ต๋๋ค.
์ฆ,
- ์ฒซ ๋ฒ์งธ ๊ฐ์ผ๋ก ์์ํ๊ณ
- ๋ค์ ๊ฐ์ ํ๋์ฉ ํฉ์น๋ฉด์ lcm์ผ๋ก ๊ฐฑ์ ํ๋ฉด ๋!