AcWing 866. 试除法判定质数-python
原题链接
简单
作者:
Actor丶
,
2020-04-06 09:00:21
,
所有人可见
,
阅读 707
"""
基本思想:
从i=2开始,枚举到n/i,如果能被整除,发挥False,否则返回True
"""
def getPrime(x): # 时间复杂度O(sqrt(n))
if x<2:
return False
i = 2 # 因为i*i<=x,所以只需要循环发哦i<=x/i
while i<=x/i: # 不推荐写成i<=sqrt(x)或i*i<=x,因为前者每次循环要计算平方根,后者在Java,C++中可能会导致溢出问题
if x%i==0:
return False
i+=1 # !!!出错,i忘记加等于1了
return True
if __name__=="__main__":
n = int(input().strip())
for _ in range(n):
a = int(input().strip())
res = getPrime(a)
if res: print("Yes")
else: print("No")