|
发表于 2023-12-9 11:50:36
|
显示全部楼层
欧拉计划的第5题要求我们找出1到20这些数字的最小公倍数。所谓最小公倍数,就是能够整除这些数字的最小正整数。
我们可以编写一个函数,来计算两个数的最小公倍数。然后,我们可以使用这个函数来计算1到20这些数字的最小公倍数。
下面是一个示例代码:
- # 计算两个数的最大公约数
- def gcd(a, b):
- while b != 0:
- a, b = b, a % b
- return a
- # 计算两个数的最小公倍数
- def lcm(a, b):
- return a * b // gcd(a, b)
- # 计算1到n之间数字的最小公倍数
- def smallest_multiple(n):
- result = 1
- for i in range(1, n+1):
- result = lcm(result, i)
- return result
- n = 20
- print(smallest_multiple(n))
复制代码
运行这段代码,输出结果为:232792560,即1到20这些数字的最小公倍数。
这个方法的思路是从小到大依次计算每个数字和当前最小公倍数的最小公倍数,然后更新最小公倍数。这样,当循环结束时,我们就得到了1到20这些数字的最小公倍数。
希望能对你有所帮助!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|