์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ
def gcd(a, b):
i = min(a, b) #1
while True:
if a % i == 0 and b % i == 0: # 2
return i #3
i -= 1 #4
print(gcd(60, 24))
1. ๋ ์ ์ค์ ๋ ์์ ์๋ฅผ i์ ์ ์ฅํ๋ค.
2. i๊ฐ ๋ ์์ ๊ณตํต๋ ์ฝ์์ธ์ง ํ์ธํ๋ค.
3. ๋ง์ฝ ๊ณตํต๋ ์ฝ์๋ผ๋ฉด ๊ฒฐ๊ณผ๊ฐ์ ๋๋ ค์ฃผ๊ณ ์ข ๋ฃํ๋ค.
4. ์๋๋ผ๋ฉด i๋ฅผ 1 ๊ฐ์์ํค๊ณ 2๋ฒ์ผ๋ก ๋์๊ฐ ๋ฐ๋ณตํ๋ค.
๋ ๋ฒ์งธ ๋ฐฉ๋ฒ
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
print(gcd(60, 24))
์ด ๋ฐฉ๋ฒ์ ์ ํด๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ ๋ฐฉ๋ฒ์ด๋ค.
a์ b์ ์ต๋๊ณต์ฝ์๋ 'b'์ 'a๋ฅผ b๋ก ๋๋ ๋๋จธ์ง'์ ์ต๋๊ณต์ฝ์์ ๊ฐ๋ค.
์ฆ, gcd(a, b) = gcd(b, a%b)
์ด๋ค ์์ 0์ ์ต๋๊ณต์ฝ์๋ ์๊ธฐ ์์ ์ด๋ค.
์ฆ, gcd(n, 0) = n์ด๋ค.
'Algorithm > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ์ฝ์ ์ ๋ ฌ (0) | 2020.08.22 |
---|---|
[Python] ์ ํ์ ๋ ฌ (0) | 2020.08.20 |
[Python] ์์ฐจํ์ (0) | 2020.08.19 |
[Python] ํฉํ ๋ฆฌ์ผ ๊ตฌํ๊ธฐ (0) | 2020.08.16 |
[Python] 1๋ถํฐ N๊น์ง ํฉ ๊ตฌํ๊ธฐ (0) | 2020.08.14 |