๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ˆ˜ํ•™ ๊ฐœ๋…

์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ์›๋ฆฌ์™€ ์ฆ๋ช…, ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๊นŒ์ง€ ์ •๋ฆฌ

๋ฐ˜์‘ํ˜•
๐Ÿ“ ๊ฐœ๋… ์ •๋ฆฌ

์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์€ ๋‘ ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๋‚˜๋ˆ—์…ˆ์˜ ๋‚˜๋จธ์ง€๋งŒ ๋ฐ˜๋ณตํ•ด์„œ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์›๋ฆฌ์™€ ์ฆ๋ช…, ๊ณ„์‚ฐ ์˜ˆ์‹œ, ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋กœ ํ™•์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•, ํŒŒ์ด์ฌ ๊ตฌํ˜„๊ณผ ํ™œ์šฉ๊นŒ์ง€ ๊ณ ๋“ฑ์ˆ˜ํ•™ ์ˆ˜์ค€์—์„œ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์œผ๋กœ ๋‘ ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์œผ๋กœ ์ค„์—ฌ ๊ฐ€๋Š” ๊ณผ์ •์„ ํ‘œํ˜„ํ•œ ๊ธฐํ•˜ ์ผ๋Ÿฌ์ŠคํŠธ

์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์€ ๋‘ ์ž์—ฐ์ˆ˜ $a$, $b$์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•  ๋•Œ, ํฐ ์ˆ˜๋ฅผ ์ž‘์€ ์ˆ˜๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋กœ ํฐ ์ˆ˜๋ฅผ ๊ฐˆ์•„ ๋ผ์šฐ๋Š” ์ผ์„ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์†Œ์ธ์ˆ˜๋ถ„ํ•ด๊ฐ€ ํ•„์š” ์—†๊ณ , ์ˆ˜๊ฐ€ ์•„๋ฌด๋ฆฌ ์ปค๋„ ๋‚˜๋ˆ—์…ˆ ๋ช‡ ๋ฒˆ์ด๋ฉด ๋๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์ปดํ“จํ„ฐ๊ฐ€ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•  ๋•Œ ์ง€๊ธˆ๋„ ๊ทธ๋Œ€๋กœ ์“ฐ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

ํ˜ธ์ œ๋ฒ•(ไบ’้™คๆณ•)์ด๋ผ๋Š” ์ด๋ฆ„์€ "์„œ๋กœ ๋‚˜๋ˆˆ๋‹ค"๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ๋‘ ์ˆ˜๊ฐ€ ๋ฒˆ๊ฐˆ์•„ ๊ฐ€๋ฉฐ ๋‚˜๋ˆ„๋Š” ์ˆ˜์™€ ๋‚˜๋‰˜๋Š” ์ˆ˜์˜ ์—ญํ• ์„ ๋ฐ”๊พธ๊ธฐ ๋•Œ๋ฌธ์— ๋ถ™์€ ์ด๋ฆ„์ด๊ณ , ๊ธฐ์›์ „ 300๋…„ ๋ฌด๋ ต ์œ ํด๋ฆฌ๋“œ๊ฐ€ ใ€Ž์›๋ก ใ€ 7๊ถŒ์— ์ •๋ฆฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ๊ธฐ๋ก์œผ๋กœ ๋‚จ์•„ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ€์šด๋ฐ ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

ํ•ต์‹ฌ์€ ๋‹จ ํ•˜๋‚˜์˜ ๋“ฑ์‹์ž…๋‹ˆ๋‹ค. $a$๋ฅผ $b$๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ $r$์ด๋ผ ํ•  ๋•Œ,

$$\gcd(a,\ b) = \gcd(b,\ r) \quad (a = bq + r,\ 0 \le r < b)$$

์—ฌ๊ธฐ์„œ $\gcd$๋Š” ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜(greatest common divisor), $q$๋Š” ๋ชซ, $r$์€ ๋‚˜๋จธ์ง€์ž…๋‹ˆ๋‹ค. ์ด ๋“ฑ์‹์€ "$a$์™€ $b$์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” $b$์™€ ๋‚˜๋จธ์ง€ $r$์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ๊ฐ™๋‹ค"๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ์ง์ด $(a, b)$์—์„œ $(b, r)$๋กœ ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ์ˆ˜๊ฐ€ ์ž‘์•„์ง€๋ฏ€๋กœ, ๊ฐ™์€ ์ผ์„ ๋ฐ˜๋ณตํ•˜๋ฉด ์–ธ์  ๊ฐ€ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ๋˜๊ณ  ๊ทธ๋•Œ ๋‚จ์€ ๋‚˜๋ˆ„๋Š” ์ˆ˜๊ฐ€ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์ž…๋‹ˆ๋‹ค. ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ์ „์ฒด๊ฐ€ ์ด ๋“ฑ์‹ ํ•˜๋‚˜๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ๊ณ„์‚ฐ ์˜ˆ์‹œ — 1071๊ณผ 462

๊ต๊ณผ์„œ์— ์ž์ฃผ ๋‚˜์˜ค๋Š” 1071๊ณผ 462๋กœ ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์„ ์ง์ ‘ ๋Œ๋ ค ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํฐ ์ˆ˜๋ฅผ ์ž‘์€ ์ˆ˜๋กœ ๋‚˜๋ˆ„๊ณ , ๋‚˜๋จธ์ง€๋ฅผ ๋‹ค์Œ ๋‹จ๊ณ„์˜ ๋‚˜๋ˆ„๋Š” ์ˆ˜๋กœ ๋„˜๊น๋‹ˆ๋‹ค.

$$\begin{aligned} 1071 &= 462 \times 2 + 147 \\ 462 &= 147 \times 3 + 21 \\ 147 &= 21 \times 7 + 0 \end{aligned}$$

์ฒซ ์ค„์—์„œ 1071์„ 462๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ 147์„ ์–ป๊ณ , ๋‘˜์งธ ์ค„์—์„œ 462๋ฅผ 147๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ 21์„ ์–ป๊ณ , ์…‹์งธ ์ค„์—์„œ 147์„ 21๋กœ ๋‚˜๋ˆ„๋‹ˆ ๋‚˜๋จธ์ง€๊ฐ€ 0์ž…๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ๋œ ์ˆœ๊ฐ„์˜ ๋‚˜๋ˆ„๋Š” ์ˆ˜ 21์ด ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ $1071 = 3^2 \times 7 \times 17$, $462 = 2 \times 3 \times 7 \times 11$์ด๋ฏ€๋กœ ๊ณตํ†ต ์†Œ์ธ์ˆ˜์˜ ๊ณฑ $3 \times 7 = 21$๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์†Œ์ธ์ˆ˜๋ถ„ํ•ด๋กœ ํ’€๋ฉด 1071์ด 17๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง„๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ฐพ์•„๋‚ด์•ผ ํ•˜์ง€๋งŒ, ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์€ ๋‚˜๋ˆ—์…ˆ ์„ธ ๋ฒˆ์œผ๋กœ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.

๋‚˜๋จธ์ง€๊ฐ€ 0์ด ๋˜๊ธฐ ์ง์ „์˜ ๋‚˜๋จธ์ง€๊ฐ€ ๋‹ต์ด๋ผ๊ณ  ์™ธ์šฐ๋ฉด ํ—ท๊ฐˆ๋ฆฌ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. "๋‚˜๋จธ์ง€๊ฐ€ 0์ด ๋œ ๋‚˜๋ˆ—์…ˆ์—์„œ ๋‚˜๋ˆ„๋Š” ์ˆ˜"๋ผ๊ณ  ๊ธฐ์–ตํ•˜๋Š” ํŽธ์ด ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ์ˆ˜๊ฐ€ ์„œ๋กœ์†Œ๋ผ๋ฉด ๋งˆ์ง€๋ง‰ ๋‚˜๋ˆ„๋Š” ์ˆ˜๊ฐ€ 1์ด ๋˜์–ด, ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์€ ์„œ๋กœ์†Œ ํŒ์ •์—๋„ ๊ทธ๋Œ€๋กœ ์“ฐ์ž…๋‹ˆ๋‹ค.

์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ์ฆ๋ช… — ์™œ ๋‚˜๋จธ์ง€๋กœ ๋ฐ”๊ฟ”๋„ ๋˜๋Š”๊ฐ€?

์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ์ฆ๋ช…์€ "$a$์™€ $b$์˜ ๊ณต์•ฝ์ˆ˜ ์ง‘ํ•ฉ"๊ณผ "$b$์™€ $r$์˜ ๊ณต์•ฝ์ˆ˜ ์ง‘ํ•ฉ"์ด ์™„์ „ํžˆ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์ด๋ฉด ๋๋‚ฉ๋‹ˆ๋‹ค. ๋‘ ์ง‘ํ•ฉ์ด ๊ฐ™์œผ๋ฉด ๊ทธ ์•ˆ์˜ ๊ฐ€์žฅ ํฐ ์›์†Œ, ์ฆ‰ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋„ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋จผ์ € $d$๊ฐ€ $a$์™€ $b$์˜ ๊ณต์•ฝ์ˆ˜๋ผ๊ณ  ํ•ฉ์‹œ๋‹ค. $a = bq + r$์„ $r = a - bq$๋กœ ๊ณ ์ณ ์“ฐ๋ฉด, $d$๋Š” $a$๋„ ๋‚˜๋ˆ„๊ณ  $bq$๋„ ๋‚˜๋ˆ„๋ฏ€๋กœ ๊ทธ ์ฐจ์ธ $r$๋„ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ $d$๋Š” $b$์™€ $r$์˜ ๊ณต์•ฝ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ฑฐ๊พธ๋กœ $d$๊ฐ€ $b$์™€ $r$์˜ ๊ณต์•ฝ์ˆ˜์ด๋ฉด, $bq + r$์€ $d$์˜ ๋ฐฐ์ˆ˜๋ผ๋ฆฌ์˜ ํ•ฉ์ด๋ฏ€๋กœ $a$๋„ $d$์˜ ๋ฐฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ $d$๋Š” $a$์™€ $b$์˜ ๊ณต์•ฝ์ˆ˜์ž…๋‹ˆ๋‹ค. ํ•œ์ชฝ ๊ณต์•ฝ์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ๋‹ค๋ฅธ ์ชฝ ๊ณต์•ฝ์ˆ˜์ด๋ฏ€๋กœ ๋‘ ์ง‘ํ•ฉ์€ ๊ฐ™๊ณ , $\gcd(a, b) = \gcd(b, r)$์ด ์„ฑ๋ฆฝํ•ฉ๋‹ˆ๋‹ค.

์ฆ๋ช…์—์„œ ์“ด ์‚ฌ์‹ค์€ "์•ฝ์ˆ˜๋Š” ํ•ฉ๊ณผ ์ฐจ์— ๋Œ€ํ•ด ๋ณด์กด๋œ๋‹ค"๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ์›๋ฆฌ์˜ ์ „๋ถ€์ด๊ณ , ๋‚˜๋จธ์ง€๋ฅผ ์ทจํ•˜๋Š” ์—ฐ์‚ฐ์ด ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ์ „ํ˜€ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ฐ˜๋“œ์‹œ ๋๋‚œ๋‹ค๋Š” ๊ฒƒ๋„ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ $r$์€ ํ•ญ์ƒ $b$๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ ๊ฐ ๋‹จ๊ณ„์—์„œ ๋‘ ๋ฒˆ์งธ ์ˆ˜๊ฐ€ ์—„๊ฒฉํžˆ ๊ฐ์†Œํ•˜๊ณ , ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜๋Š” ๋ฌดํ•œํžˆ ๊ฐ์†Œํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์œผ๋กœ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ ๊ตฌํ•˜๋Š” ๋ฒ•

์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ ๋ฌธ์ œ๋Š” ๋ณ„๋„์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‘ ์ž์—ฐ์ˆ˜์˜ ๊ณฑ์€ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜์˜ ๊ณฑ๊ณผ ๊ฐ™๋‹ค๋Š” ๊ด€๊ณ„๋ฅผ ์“ฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

$$\operatorname{lcm}(a,\ b) = \frac{a \times b}{\gcd(a,\ b)}$$

$\operatorname{lcm}$์€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜(least common multiple)์ž…๋‹ˆ๋‹ค. ์•ž์˜ ์˜ˆ๋กœ ๊ณ„์‚ฐํ•˜๋ฉด $1071 \times 462 \div 21 = 23562$๊ฐ€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ์†Œ์ธ์ˆ˜๋ถ„ํ•ด ๊ด€์ ์—์„œ ๋ณด๋ฉด ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” ๊ณตํ†ต ์†Œ์ธ์ˆ˜๋ฅผ ๋‚ฎ์€ ์ง€์ˆ˜๋กœ ๋ชจ์€ ๊ฒƒ์ด๊ณ  ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋Š” ๋†’์€ ์ง€์ˆ˜๋กœ ๋ชจ์€ ๊ฒƒ์ด๋ผ, ๋‘˜์„ ๊ณฑํ•˜๋ฉด ๊ฐ ์†Œ์ธ์ˆ˜์˜ ์ง€์ˆ˜๊ฐ€ ์›๋ž˜ ๋‘ ์ˆ˜์˜ ์ง€์ˆ˜ ํ•ฉ์ด ๋˜์–ด $a \times b$์™€ ๊ฐ™์•„์ง‘๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์˜ค๋ฒ„ํ”Œ๋กœ๋ฅผ ํ”ผํ•˜๋ ค๊ณ  $a \div \gcd(a, b)$๋ฅผ ๋จผ์ € ๊ณ„์‚ฐํ•œ ๋’ค $b$๋ฅผ ๊ณฑํ•˜๋Š” ์ˆœ์„œ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ํŒŒ์ด์ฌ ๊ตฌํ˜„๊ณผ ๊ณ„์‚ฐ ํšŸ์ˆ˜

์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ฝ”๋“œ๋กœ ์˜ฎ๊ธฐ๋ฉด ์„ธ ์ค„์ž…๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ์—์„œ๋Š” ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž %๋ฅผ ์“ฐ๊ณ , ๋‘ ๋ฒˆ์งธ ์ˆ˜๊ฐ€ 0์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

def gcd(a, b):
    while b:
        a, b = b, a % b
    return a

ํ•œ ์ค„๋กœ ์“ฐ๋ฉด ์žฌ๊ท€ํ˜• gcd(b, a % b)๊ฐ€ ๋˜๊ณ , ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” math.gcd๊ฐ€ ์ด๋ฏธ ๋“ค์–ด ์žˆ์Šต๋‹ˆ๋‹ค. C ์–ธ์–ด๋„ ๊ตฌ์กฐ๋Š” ๋˜‘๊ฐ™์•„์„œ, ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• C ๊ตฌํ˜„์€ while ๋ฌธ ์•ˆ์—์„œ ์ž„์‹œ ๋ณ€์ˆ˜ ํ•˜๋‚˜๋กœ ๋‘ ๊ฐ’์„ ๊ตํ™˜ํ•˜๋Š” ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅ ์ˆœ์„œ๋ฅผ ์‹ ๊ฒฝ ์“ธ ํ•„์š”๋„ ์—†์Šต๋‹ˆ๋‹ค. ์ž‘์€ ์ˆ˜๊ฐ€ ์•ž์— ์˜ค๋ฉด ์ฒซ ๋‹จ๊ณ„์—์„œ $a \% b = a$๊ฐ€ ๋˜์–ด ์ž๋™์œผ๋กœ ์ž๋ฆฌ๊ฐ€ ๋ฐ”๋€๋‹ˆ๋‹ค.

๋‚˜๋ˆ—์…ˆ์„ ๋ช‡ ๋ฒˆ ํ•ด์•ผ ํ•˜๋Š”์ง€๋„ ์ •ํ™•ํžˆ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ผ๋ฉ”์˜ ์ •๋ฆฌ์— ๋”ฐ๋ฅด๋ฉด ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์˜ ๋‚˜๋ˆ—์…ˆ ํšŸ์ˆ˜๋Š” ์ž‘์€ ์ˆ˜์˜ ์ž๋ฆฟ์ˆ˜์˜ 5๋ฐฐ๋ฅผ ๋„˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰ 10์ž๋ฆฌ ์ˆ˜๋ผ๋ฆฌ๋ผ๋„ 50๋ฒˆ ์•ˆ์— ๋๋‚˜๊ณ , ์‹œ๊ฐ„๋ณต์žก๋„๋กœ๋Š” $O(\log \min(a, b))$์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ž…๋ ฅ์€ ์—ฐ์†ํ•œ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ ๋‘ ๊ฐœ์ธ๋ฐ, ๋งค ๋‹จ๊ณ„ ๋ชซ์ด 1์ด๋ผ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ฒœ์ฒœํžˆ ์ค„์–ด๋“ค๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ํ™œ์šฉ — ๋ถ„์ˆ˜ ์•ฝ๋ถ„์—์„œ ์•”ํ˜ธ๊นŒ์ง€

๊ฐ€์žฅ ์ผ์ƒ์ ์ธ ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ํ™œ์šฉ์€ ๋ถ„์ˆ˜ ์•ฝ๋ถ„์ž…๋‹ˆ๋‹ค. ๋ถ„์ž์™€ ๋ถ„๋ชจ์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋กœ ๋‚˜๋ˆ„๋ฉด ๊ธฐ์•ฝ๋ถ„์ˆ˜๊ฐ€ ๋˜๊ณ , ๊ณ„์‚ฐ๊ธฐ์™€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ๊ฐ€ ๋‚ด๋ถ€์—์„œ ํ•˜๋Š” ์ผ์ด ๋ฐ”๋กœ ์ด๊ฒƒ์ž…๋‹ˆ๋‹ค. ํƒ€์ผ ๊น”๊ธฐ ๋ฌธ์ œ๋„ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ€๋กœ 1071, ์„ธ๋กœ 462์ธ ์ง์‚ฌ๊ฐํ˜•์„ ๋นˆํ‹ˆ์—†์ด ์ฑ„์šฐ๋Š” ๊ฐ€์žฅ ํฐ ์ •์‚ฌ๊ฐํ˜•์˜ ํ•œ ๋ณ€์€ 21์ด๊ณ , ์ด ๊ทธ๋ฆผ์€ ์‹ค์ œ๋กœ ์œ ํด๋ฆฌ๋“œ๊ฐ€ ํ˜ธ์ œ๋ฒ•์„ ์„ค๋ช…ํ•œ ๋ฐฉ์‹๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํฐ ์ง์‚ฌ๊ฐํ˜•์—์„œ ์ •์‚ฌ๊ฐํ˜•์„ ์ž˜๋ผ ๋‚ด๊ณ  ๋‚จ์€ ์ž‘์€ ์ง์‚ฌ๊ฐํ˜•์— ๊ฐ™์€ ์ผ์„ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์ด ๋‚˜๋ˆ—์…ˆ์˜ ๊ธฐํ•˜ํ•™์  ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

ํ•œ ๋‹จ๊ณ„ ๋” ๋‚˜์•„๊ฐ„ ํ™•์žฅ ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์€ $ax + by = \gcd(a, b)$๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์ •์ˆ˜ $x$, $y$๋ฅผ ํ•จ๊ป˜ ์ฐพ์•„ ์ค๋‹ˆ๋‹ค. ๊ฐ ๋‹จ๊ณ„์˜ ๋‚˜๋ˆ—์…ˆ ๋“ฑ์‹์„ ๊ฑฐ๊พธ๋กœ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€ ๋‚˜๋จธ์ง€๋ฅผ ์›๋ž˜ ๋‘ ์ˆ˜์˜ ์กฐํ•ฉ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด ์ •์ˆ˜ํ•ด๊ฐ€ ์žˆ์–ด์•ผ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์—์„œ ์—ญ์›์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๊ณ , RSA ์•”ํ˜ธ์—์„œ ๊ฐœ์ธ ํ‚ค๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋‹จ๊ณ„๊ฐ€ ์ •ํ™•ํžˆ ์ด ๊ณ„์‚ฐ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋งค์ผ ์“ฐ๋Š” ์ธํ„ฐ๋„ท ๋ณด์•ˆ์˜ ๋ฐ”๋‹ฅ์— 2300๋…„ ๋œ ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์ด ๊ทธ๋Œ€๋กœ ๊น”๋ ค ์žˆ๋Š” ์…ˆ์ž…๋‹ˆ๋‹ค.

์ €๋Š” ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์„ ์ฒ˜์Œ ๋ฐฐ์šธ ๋•Œ "์†Œ์ธ์ˆ˜๋ถ„ํ•ด๊ฐ€ ์žˆ๋Š”๋ฐ ์™œ ์ด๋Ÿฐ ๊ฑธ ๋˜ ๋ฐฐ์šฐ๋‚˜" ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒ๊ฐ์ด ๋ฐ”๋€ ๊ฑด ๋Œ€ํ•™์—์„œ ์ˆ˜๋ฐฑ ์ž๋ฆฌ ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ณผ์ œ๋ฅผ ๋ฐ›์•˜์„ ๋•Œ์˜€์Šต๋‹ˆ๋‹ค. ์†Œ์ธ์ˆ˜๋ถ„ํ•ด๋Š” ์•„์˜ˆ ์‹œ๋„์กฐ์ฐจ ๋ชป ํ•˜๋Š” ํฌ๊ธฐ์˜€๋Š”๋ฐ, ํ˜ธ์ œ๋ฒ•์€ ๋‚˜๋ˆ—์…ˆ ๋ช‡๋ฐฑ ๋ฒˆ์œผ๋กœ ์ˆœ์‹๊ฐ„์— ๋๋‚ฌ์Šต๋‹ˆ๋‹ค. ๊ทธ๋•Œ๋ถ€ํ„ฐ ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์†Œ์ธ์ˆ˜๋ถ„ํ•ด์˜ ๋Œ€์ฒดํ’ˆ์ด ์•„๋‹ˆ๋ผ, ์†Œ์ธ์ˆ˜๋ถ„ํ•ด๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ณณ์—์„œ๋งŒ ์ž‘๋™ํ•˜๋Š” ๋„๊ตฌ๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜๊ฒŒ ๋์Šต๋‹ˆ๋‹ค.

์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ํ•ต์‹ฌ ์š”์•ฝ

  • ์›๋ฆฌ: $\gcd(a, b) = \gcd(b, a \bmod b)$. ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ๋˜๋ฉด ๊ทธ๋•Œ์˜ ๋‚˜๋ˆ„๋Š” ์ˆ˜๊ฐ€ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜.
  • ์ฆ๋ช…: ์•ฝ์ˆ˜๋Š” ํ•ฉ๊ณผ ์ฐจ์— ๋ณด์กด๋˜๋ฏ€๋กœ $(a, b)$์™€ $(b, r)$์˜ ๊ณต์•ฝ์ˆ˜ ์ง‘ํ•ฉ์ด ๊ฐ™๋‹ค.
  • ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜: $a \times b \div \gcd(a, b)$๋กœ ๋ฐ”๋กœ ๊ณ„์‚ฐ.
  • ์†๋„: ๋‚˜๋ˆ—์…ˆ ํšŸ์ˆ˜๋Š” ์ž‘์€ ์ˆ˜ ์ž๋ฆฟ์ˆ˜์˜ 5๋ฐฐ ์ดํ•˜, $O(\log n)$. ์ตœ์•…์€ ์—ฐ์† ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜.