输入一个大于等于2的正整数,判断是否为素数。素数是只能被1和自己整除的数,因数的范围是从1到自己。
①直接用素数定义求解
num=int(input())
lst=[ factor for factor in range(1,num+1) if num % factor==0]
if lst==[1,num]:
print("是素数")
else:
print("不是素数")
②
def isprime(num):
flag=True
for i in range(2,num): # i从2到num-1
if num % i == 0:
flag = False
break
return flag
n=int(input())
if isprime(n) == True :
print("是素数")
if isprime(n) == False :
print("不是素数")
③其实只需要判断到sqrt(n) 就可以了
import math
def isprime(num):
flag=True
if num<2:
flag = False
for i in range(2,int(math.sqrt(num))+1): # i从2到sqrt(num)
if num % i == 0:
flag = False
break
return flag
n=int(input())
if isprime(n) == True :
print("是素数")
if isprime(n) == False :
print("不是素数")