📅  最后修改于: 2023-12-03 15:07:33.951000             🧑  作者: Mango
本题需要设计一个算法,确定一个给定的数是否为质数。
判断一个给定的数 N 是否为质数。
一个正整数 N(1<=N<=10^9)。
如果 N 是质数,则输出“yes”,否则输出“no”。
首先,质数是指除了 1 和它本身两个因数之外,没有其他的因数。因此,判断一个数是否为质数,只需要判断它是否有除了 1 和它本身以外的因数即可。
根据这个原理,我们可以迭代地从 2 开始除以递增的整数,直到整除为止。如果整除的结果不为 1 或本身,则说明存在其他的因数,即该数不是质数。
实现代码如下:
n = int(input())
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
if is_prime(n):
print("yes")
else:
print("no")
对于一个给定的数 N,我们需要迭代地从 2 开始除以递增的整数。每次迭代的时间复杂度为 O(1),因此总的时间复杂度为 O(sqrt(N))。