최대공약수

levn94·2023년 3월 28일
0

알고리즘

목록 보기
8/9

#### num1< num2

num1 = int(input())
num2 = int(input())

for i in range(1, (num1 + 1)):
	if num1 % i == 0 and num2 % i ==0:
    	print('공약수: {}'.format(i))
        maxNum = i

print('최대공약수 : {}'.format(maxNUm))

for문을 이용한 최대공약수 출력 코드.

1씩 증가하며 모든 경우에 대해 수행하기 때문에 비효율적


유클리드 호제법

"x,y의 최대공약수는 y, (x%y)의 최대공약수와 같다"

<응용> 나머지가 0이 될때까지 나누기

ex) 76, 84의 최대 공약수
76 % 84 = 76

84 % 76 = 8

76 % 8 = 4

8 % 4 = 0 -> 나머지가 0이 되게하는 4가 최대공약수가 된다




num1 = int(input())
num2 = int(input())


temp1 = num1; temp2 = num2

while temp2 > 0:
	temp = temp2
    temp2 = temp1 % temp2
    temp1 = temp
    
print('{}, {}의 최대공약수 : {}'.format(num1, num2, temp1))
profile
Data Science & Engineering

0개의 댓글