用Python比较简单的方法判断n是否为一个素数如果是则返回逻辑值true如果不是则返回逻辑值false写出算法并计算算法的时间复杂度
以下是用Python编写的判断一个数n是否为素数的算法:
import math
def is_prime(n):
if n <= 1:
return False
if n == 2:
return True
if n % 2 == 0:
return False
for i in range(3, int(math.sqrt(n)) + 1, 2):
if n % i == 0:
return False
return True
时间复杂度分析:
- 在算法中,首先判断n是否小于等于1,这个判断操作的时间复杂度为O(1)。
- 接下来,判断n是否等于2,时间复杂度同样为O(1)。
- 再次,判断n是否为偶数,时间复杂度同样为O(1)。
- 最后,通过循环判断n是否能被2到sqrt(n)之间的奇数整除,循环的次数约为sqrt(n)/2,所以时间复杂度为O(sqrt(n))。
综上所述,该算法的时间复杂度为O(sqrt(n))。
原文地址: https://www.cveoy.top/t/topic/i3J7 著作权归作者所有。请勿转载和采集!