Python编写求100以内素数

注:本文所使用的方法都是从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!

 

  • 10
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值