Leetcode刷题Python改进的算法,高效求一个数的因子

Posted Better Bench

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode刷题Python改进的算法,高效求一个数的因子相关的知识,希望对你有一定的参考价值。

1 思路

不用全部遍历,只遍历1到根号(n)的范围即可。
当i是可以整除的,用n/i得到的是相对另一个因子。
时间复杂度 O ( n 1 / 2 ) O(n^1/2) O(n1/2)

2 实现

import math
def low_fac(n):
    ans = []
    for i in range(1,int(math.sqrt(n))):
        
        if n%i==0:
            if i*i>n:
                ans.append(i)
            t = int(n/i)
            if t!=i and t*t>n:
                ans.append(t)
    return ans 

以上是关于Leetcode刷题Python改进的算法,高效求一个数的因子的主要内容,如果未能解决你的问题,请参考以下文章

力扣( LeetCode)刷题,这么做才高效

Leetcode刷题Python括号匹配问题

Leetcode刷题Python74. 搜索二维矩阵

leetcode刷题记录

7天带你全方位刷爆数据结构与算法,每天一道,高效刷题

leetcode刷题四