Python程序中查找素数的不同方法
在本教程中,我们将探讨查找给定数字是否有效不同的方法。让我们开始吧。
方法一
这是一个查找素数的通用方法。
如果数字小于或等于1,则返回False。
如果数字可以被任何数字整除,则函数将返回False。
循环结束后,返回True。
示例
# checking for prime def is_prime(n): if n <= 1: return False else: for i in range(2, n): # checking for factor if n % i == 0: # return False return False # returning True return True print(f"Is 2 prime: {is_prime(2)}") print(f"Is 4 prime: {is_prime(4)}") print(f"Is 7 prime: {is_prime(7)}")
输出
如果您运行以上代码,则将获得以下结果。
Is 2 prime: True Is 4 prime: False Is 7 prime: True
方法二
在这种方法中,我们将通过将迭代次数减少到n的平方根来减少迭代次数。让我们看看代码。
示例
import math # checking for prime def is_prime(n): if n <= 1: return False else: # iterating loop till square root of n for i in range(2, int(math.sqrt(n)) + 1): # checking for factor if n % i == 0: # return False return False # returning True return True print(f"Is 2 prime: {is_prime(2)}") print(f"Is 4 prime: {is_prime(4)}") print(f"Is 7 prime: {is_prime(7)}")
输出
如果您运行以上代码,则将获得以下结果。
Is 2 prime: True Is 4 prime: False Is 7 prime: True
方法三
在先前的方法中,我们检查了偶数。我们都知道,除了2之外,偶数不可能是素数。因此,在这种方法中,我们将删除所有偶数以减少时间。
示例
import math # checking for prime def is_prime(n): # checking for less than 1 if n <= 1: return False # checking for 2 elif n == 2: return True elif n > 2 and n % 2 == 0: return False else: # iterating loop till square root of n for i in range(3, int(math.sqrt(n)) + 1, 2): # checking for factor if n % i == 0: # return False return False # returning True return True print(f"Is 2 prime: {is_prime(2)}") print(f"Is 4 prime: {is_prime(4)}") print(f"Is 7 prime: {is_prime(7)}")
输出
如果您运行以上代码,则将获得以下结果。
Is 2 prime: True Is 4 prime: False Is 7 prime: True
结论
如果您对本教程有任何疑问,请在评论部分提出。
广告