반응형
최대공약수
먼저 두 수의 최대공약수를 구하는 알고리즘은 다음과 같다.
def gcd_(a, b):
while b>0:
a,b=b,a%b
return a
arr[0]~arr[N-1]
N개의 수가 주어졌을 때 최대 공약수를 구해보자arr[0]
과 arr[1]
의 최대공약수 gcd
라고 하면, gcd
를 gcd
와 arr[2]
와의 최대공약수로 갱신해주고, 다시 gcd
와 arr[3]
의 최대공약수를 구하는 것을 반복 해 주면 된다.
def gcd_N(arr):
gcd=arr[0]
for item in arr:
gcd=gcd_(gcd,item)
return gcd
최소공배수
먼저 두 수의 최소공배수를 구하는 알고리즘은 다음과 같다.
def lcm_(a, b):
return a*b//gcd(a,b)
arr[0]~arr[N-1]
N개의 수가 주어졌을 때 최소공배수를 구해보자arr[0]
과 arr[1]
의 최소공배수 lcm
라고 하면, lcm
를 lcm
와 arr[2]
와의 최소공배수로 갱신해주고, 다시 lcm
와 arr[3]
의 최소공배수를 구하는 것을 반복 해 주면 된다.
def lcm_N(arr):
lcm=1
for item in arr:
lcm=lcm_(lcm,item)
return lcm
반응형
'Python' 카테고리의 다른 글
[Python] 하노이 탑 경로, 이동 횟수 구하기 (0) | 2020.04.01 |
---|