📅  最后修改于: 2023-12-03 15:26:40.491000             🧑  作者: Mango
这是一个简单的算法问题,对于给定的范围,我们需要找到每个数的最大除数。
一个数 n 的最大除数为 k,当且仅当 k 是 n 的因子,且 k 是所有因子中最大的。
因此,我们可以遍历给定范围内的每个数字,对于每个数字 n,从 1 到 n/2 遍历以找到 n 的所有因子,然后选择最大的。
以下是一个Python示例:
def max_divisor(num):
"""
返回给定数字的最大因子
"""
max_div = 1
for i in range(1, num//2+1):
if num % i == 0:
max_div = i
return max_div
def max_divisor_range(low, high):
"""
返回给定范围内的所有数字的最大因子
"""
results = []
for num in range(low, high+1):
results.append(max_divisor(num))
return results
假设我们要查询给定范围 [1, 10] 内的数字的最大因子。我们可以使用以下代码:
>>> max_divisor_range(1, 10)
[1, 2, 3, 2, 5, 3, 7, 2, 3, 5]
结果显示 [1, 2, 3, 2, 5, 3, 7, 2, 3, 5],与我们的预期相同。