最大公约数
运用欧几里得算法递归
def gcd(a, b):
if b==0:
return a
return gcd(b, a%b)
最小公倍数
记住公式:a*b//gcd(a, b)
def gbs(a, b):
return a*b // gcd(a, b)
路径
链接: 路径
def gcd(a, b):
if b==0:
return a
return gcd(b, a%b)
def gbs(a, b):
return a*b // gcd(a, b)
dp =[float("inf") for _ in range(2022)]
dp[1]=0
for j in range(2, 2022):
for i in range(max(1, j-21), j):
dp[j] = min(dp[j], dp[i]+gbs(i, j))
print(dp[2021])