์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ด๋?
: 2๊ฐ์ ์์ฐ์ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ ์ค ํ๋.
* ์๋ฆฌ
step1. ํฐ ์๋ฅผ ์์์๋ก ๋๋๊ธฐ.
step2. ์์์ -> ํฐ ์, ๋๋จธ์ง -> ์์ ์
step3. ๋๋จธ์ง๊ฐ 0์ด ๋ ๋ ๊น์ง ํฐ ์๋ฅผ ์์์๋ก ๋๋๊ธฐ
step4. ๋๋จธ์ง๊ฐ 0์ด ๋ ๋์ ์์์ -> ์ต๋๊ณต์ฝ์
* ์์๋ก ์ดํดํ๊ธฐ
48๊ณผ 26์ ์ฝ์๋ฅผ ๊ตฌํด๋ณด์.
step1. ํฐ ์๋ฅผ ์์์๋ก ๋๋๊ธฐ.
48 / 26 = 1 ... 22
step2. ์์์ -> ํฐ ์, ๋๋จธ์ง -> ์์ ์
ํฐ ์ = 26, ์์ ์ = 22
step3. ๋๋จธ์ง๊ฐ 0์ด ๋ ๋ ๊น์ง ํฐ ์๋ฅผ ์์์๋ก ๋๋๊ธฐ
-> 26 / 22 = 1 ... 4
=> 22, 4
-> 22 / 4 = 5 ... 2
=> 4, 2
-> 4 / 2 = 2 ... 0
step4. ๋๋จธ์ง๊ฐ 0์ด ๋ ๋์ ์์์ -> ์ต๋๊ณต์ฝ์
์ต๋๊ณต์ฝ์ : 2
* ํ์ด์ฌ์ผ๋ก ๊ตฌํํ๊ธฐ ์ํด ํ์ํ ํ์ด์ฌ์ ๋ฌธ๋ฒ์ ์์
1. ๋ฐ๋ณต ๊ตฌ์กฐ : ๋์ผํ ๋ช ๋ น์ด ๋ฐ๋ณต๋๋ฉด์ ์คํ๋๋ ๊ตฌ์กฐ - for๋ฌธ
#for i in range(์์ํ ์ซ์, ์ข
๋ฃํ ์ซ์, ์ฆ๊ฐ๋)
for i in range(1, 10, 1) #1, 2, 3, 4, ..., 9
for i in range(1, 100, 3) #1, 4, 7, ... , 97
for i in range (10, 1, -1) #10, 9, ..., 2
1-2) ๋ฐ๋ณต ๊ตฌ์กฐ : ํ์ ์ ํ ์์ด ๋ฌด์ ํ ๋ฐ๋ณต ์คํํ๋ ๊ตฌ์กฐ - while ๋ฌธ
#while (์กฐ๊ฑด์) : <์คํ๋ฌธ์ฅ>
#์กฐ๊ฑด์์ด ์ฐธ์ผ ๋ ์คํ๋ฌธ์ฅ ๋ฐ๋ณต
while True : <์คํ๋ฌธ์ฅ> #๋ฌดํ๋ฐ๋ณต, break๋ก ์ค์ง ๊ฐ๋ฅ.
2. ์ ํ ๊ตฌ์กฐ : ๋ ์ค ํ๋์ ๋ช ๋ น์ ์ ํํ์ฌ ์คํํ๋ ๊ตฌ์กฐ
#if (์กฐ๊ฑด์) : <์คํ๋ฌธ์ฅ>
#์กฐ๊ฑด์์ด ์ฐธ์ผ ๋ ์คํ๋ฌธ์ฅ ์คํ
n=1
if (n==1) :
print("์ฐธ")
3. ๊ธฐํ ๋ช ๋ น์ด
#input : ์ฌ์ฉ์์๊ฒ ๋ฌธ์์ด์ ์
๋ ฅํ ์ ์๋ ๋ช
๋ น์ด
#int : ๋ฌธ์์ด์ ์ ์๋ก ๋ณํ
# = : ๋ณ์์ ์ ์ฅ
# == : ๊ฐ๋ค์ ์๋ฏธ
# % : ๋๋์
์ ๋๋จธ์ง
#์ฌ์ฉ์์
n=int(input())
* ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ ์ฝ๋ ํ์ด์ฌ์ผ๋ก ๊ตฌํํ๊ธฐ
s=int(input('์์์ : '))
b=int(input('ํฐ์ : '))
while True :
r=b%s
if r==0 :
print('์ต๋๊ณต์ฝ์', s)
break
b=s
s=r
#์ถ๋ ฅ๊ฒฐ๊ณผ
์์์ : 26
ํฐ์ : 48
์ต๋๊ณต์ฝ์ 2
์ฌ์ค์, ๊ผญ ํฐ ์์ ์์ ์๋ฅผ ์์๋๋ก ๋ฐ์ ํ์๋ ์๋ค.
์๋ํ๋ฉด ์ค์ฌ ํฐ ์์ ์์ ์๊ฐ ๋ฐ๋๋ก ๋ค์ด์จ๋ค๊ณ ํด๋ step1์ ํ ๋ฒ ๊ฑฐ์น๋ฉด ๋ค์ ์ฌ์ ๋ ฌ๋๊ธฐ ๋๋ฌธ์ด๋ค.
#gcd = Greatest Common Divisor
def gcd(b, s) :
while(b%s!=0) :
temp = s
s=b%s
b=temp
return s