์ต์๊ณต๋ฐฐ์, ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ ๋ง ๊ฐ๋จํ๊ฒ ๊ตฌํํ ์ ์์ผ๋ฉด์๋, ๊ณ์ for๋ฌธ์ ๋๋ฆฌ๊ณ ์๊ณ ,,, ์๊ฐ๋ญ๋น๋ฅผ ํ ๋๊ฐ ๋ง๋ค. ์ค์ค๋ก ๊ธฐ์ตํ๊ธฐ ์ํด์ ์ ์ด๋๋ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ! ๊ผญ ๊ธฐ์ตํ๊ณ ์๋๋ก ํ์
๐ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ ์ด๋? (feat. ์ต๋๊ณต์ฝ์)
์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ ๋ ๊ฐ์ ์ ์(์์ฐ์) ์ฌ์ด์์์ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
ํธ์ ๋ฒ์ด๋ ๋ง์ ๋ ์๊ฐ ์๋ก(ไบ) ์๋๋ฐฉ ์๋ฅผ ๋๋์ด(้ค)์ ๊ฒฐ๊ตญ ์ํ๋ ์๋ฅผ ์ป๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ๋ธ๋ค.
-wiki
2๊ฐ์ ์์ฐ์(๋๋ ์ ์) a, b์ ๋ํด์ a๋ฅผ b๋ก ๋๋ ๋๋จธ์ง๋ฅผ r์ด๋ผ ํ๋ฉด (๋จ, a>b), a์ b์ ์ต๋๊ณต์ฝ์๋ b์ r์ ์ต๋๊ณต์ฝ์์ ๊ฐ๋ค. ์ด ์ฑ์ง์ ๋ฐ๋ผ, b๋ฅผ r๋ก ๋๋ ๋๋จธ์ง r'๋ฅผ ๊ตฌํ๊ณ , ๋ค์ r์ r'๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ๋๋จธ์ง๊ฐ 0์ด ๋์์ ๋ ๋๋๋ ์๊ฐ a์ b์ ์ต๋๊ณต์ฝ์์ด๋ค.
์์๋ก ์ดํด๋ณด์.
๐ฌ ์์๋ก ์ดํด๋ณด๋ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
1071๊ณผ 1029์ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํด๋ณด์.
- 1071์ 1029๋ก ๋๋์ด ๋จ์ด์ง์ง ์๊ธฐ ๋๋ฌธ์, 1071์ 1029๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ค. ์ฌ๊ธฐ์ ๋๋จธ์ง r ์ 42๊ฐ ๋๋ค.
- 1029๋ 42๋ก ๋๋์ด ๋จ์ด์ง์ง ์๊ธฐ ๋๋ฌธ์, 1029๋ฅผ 42๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ค. ์ฌ๊ธฐ์ r' ๋ 21์ด ๋๋ค.
- 42๋ 21๋ก ๋๋์ด ๋จ์ด์ง๋ค. ๐ ๋ฐ๋ผ์, ์ต๋๊ณต์ฝ์๋ 21์ด๋ค.
๐ ์ฝ๋๋ก ๊ตฌํํด๋ณด์. (swift)
์์์๋ ์๊ณ ๋ฆฌ์ฆ์, ์ฌ๊ท๋ฅผ ์ฌ์ฉํด์ ๊ตฌํํ ์ ์์ ๊ฒ์ด๋ค.
private func gcd(_ n: Int, _ m: Int) -> Int {
return m == 0 ? n : gcd(m, n%m)
}
- n์ด m๋ณด๋ค ํฌ๋ค๋ ์ ์ ๊ฐ ์์ด์ผํ๋ค.
- (1071, 1029)๊ฐ ๋ค์ด๊ฐ๊ฒ ๋๋ฉด, 1071์์ 1029๋ฅผ ๋๋ ๋๋จธ์ง 42๊ฐ ๋ค์ gcd์ ๋ค์ด๊ฐ๊ฒ ๋๊ณ , ๋ค์ 1029๊ฐ n์๋ฆฌ์ ๋ค์ด๊ฐ๊ฒ ๋๋ค. ์ฆ, (1029, 42)๊ฐ ๋๊ณ , ๋ค์ (42, 21)์ด ๋๋ค. ์ด ๋ค์๊ณผ์ ์ (21, 0)์ธ๋ฐ, ์ฌ๊ธฐ์ m ์ด 0์ด๋ฏ๋ก n์ธ 21์ด ์ถ๋ ฅ๋๋ ๊ณผ์ ์ด๋ค.
๐ ์ต์๊ณต๋ฐฐ์๋ ์ด๋ป๊ฒ ๊ตฌํ ๊น
์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ค๋ฉด, ์ต์๊ณต๋ฐฐ์๋ ๋งค์ฐ ์ฝ๊ฒ ๊ตฌํ ์ ์๋ค. 8๊ณผ 24 ๋ ๊ฐ์ ์๋ก ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํด๋ณด์. A์ B์ ์ต๋๊ณต์ฝ์๊ฐ a, ์ต์๊ณต๋ฐฐ์๊ฐ b๋ผ๊ณ ํ๋ฉด, A*B = a*b๋ผ๋ ๊ณต์์ด ์ฑ๋ฆฝํ๋ค. ์ด ๊ณต์์ ํ์ฉํด์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ ์ ์๋ค.