s = 0 对于i在范围中 (n):对于j在范围中 (i*i):如果j % i == 0: s += j
优化给出的代码来实现性能.
给定代码中的内循环在外部循环的每次代时运行了 (`i*i`次).但是,由于我们只关注以 (`i`可分的) `j`值,我们可以通过消除内循环并将其替换为计算,将所有小于或等于 (`i*i`的多倍数的 (`i`) 添加到代码中.以下是该代码的优化版本:s = 0 for i in range1, n:s + = sumrangei, i*i+1, i)) 这个代码版本更快,因为它具有 (`(On*i`) 的时间复杂性,而不是 (`O*i(n*i) `的原始时间复杂性.