以下是用Python判断n是否为素数的算法,并计算时间复杂度:

算法思路:

  1. 首先判断n是否小于2,若是,则返回False,因为小于2的数都不是素数。
  2. 然后使用循环从2开始逐个除以小于n的数,判断是否有余数为0,若有,则n不是素数,返回False;若没有,则n为素数,返回True。

代码实现:

def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True

时间复杂度分析:

  1. 在for循环中,i从2逐个增加到n的平方根(int(n**0.5) + 1)。
  2. 在每次循环中,执行一次求余运算(%)和一次比较运算(==)。
  3. 因此,时间复杂度为O(sqrt(n)),其中sqrt表示平方根运算。

注意:此算法并非最优算法,还有更高效的素数判断算法,如埃拉托斯特尼筛法(Sieve of Eratosthenes),可以更快地判断素数。

Python 判断素数算法及时间复杂度分析

原文地址: https://www.cveoy.top/t/topic/nnEB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录