注:本文所使用的方法都是从math 包里面导入进来sqrt函数,那么也可以只导入math包,但是应用sqrt函数时需要写成math.sqrt()
方法一:
from math import sqrt
x=2
while x<=100:
k=sqrt(x)
i=2
while i<=k:
if(x%i==0):
break
else:
i=i+1
if i>k:
print(x,end=' ')
x=x+1
这种方法和其他语言的十分相似,不做解释
方法二:
利用for循环
from math import sqrt
for x in range(2,101):#因为range函数终止值不包括在内,所以写到101
flag=1 #利用flag以防止出错,文章后续会解释
k=int(sqrt(x))
for i in range(2,k+1):
if x%i==0:
flag=0
break
if flag:
print(x,end=' ')
因为在python中for循环i这个变量的增加和其他语言中for循环是不一样的。如果if那里还用if i>k判断,会出现错误,所以我们加入了一个flag,首先大家可以试想一下,如果在x=2的时候,sqrt(x)是一个1点多的数,那么在第二层for循环那里就会出现问题,因为第二层for循环那里就是range(2,2)这种显然在range函数中是不允许的。所以会出问题,运行结果如果采取原来的思想也会出错,因此我们利用flag来标志哪一个是素数,这样就成功啦~
对于python中for循环这里我认为我还需要多加注意,慢慢习惯,加油使劲学习啊!希望接下来一周可以攻克python!