1 Star 0 Fork 0

hawk/Python

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
sol2.py 904 Bytes
一键复制 编辑 原始数据 按行查看 历史
"""
Problem:
2520 is the smallest number that can be divided by each of the numbers from 1
to 10 without any remainder.
What is the smallest positive number that is evenly divisible(divisible with no
remainder) by all of the numbers from 1 to N?
"""
""" Euclidean GCD Algorithm """
def gcd(x, y):
return x if y == 0 else gcd(y, x % y)
""" Using the property lcm*gcd of two numbers = product of them """
def lcm(x, y):
return (x * y) // gcd(x, y)
def solution(n):
"""Returns the smallest positive number that is evenly divisible(divisible
with no remainder) by all of the numbers from 1 to n.
>>> solution(10)
2520
>>> solution(15)
360360
>>> solution(20)
232792560
>>> solution(22)
232792560
"""
g = 1
for i in range(1, n + 1):
g = lcm(g, i)
return g
if __name__ == "__main__":
print(solution(int(input().strip())))
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/hawkhawk/Python.git
git@gitee.com:hawkhawk/Python.git
hawkhawk
Python
Python
master

搜索帮助