zoukankan      html  css  js  c++  java
  • python3练习100题——036

    原题链接:http://www.runoob.com/python/python-exercise-example36.html

    题目:求100之内的素数。

    之前有类似的题,所以这次遇到觉得很容易了,直接写了一个可以一直求素数下去的代码:

    def fun():
        k=1
        while True:
            k+=1
            n=0
            for i in range(2,k):
                if k%i==0:
                    n=1
                    break
            if n==0:
                print(k)

    如果要限定在100之内,改变第一个循环为for,设置range即可。

    想起在廖雪峰学的,用filter函数来利用埃氏筛法算素数,觉得挺复杂的。

    def fun2():            #构建了一个3开始的奇数序列
        n=1
        while True:
            n+=2
            yield n
    
    
    def not_divisible(n):
        return lambda x:x%n!=0    #x就是匿名函数中传入的第一个参数
    
    
    def primes():
        yield 2
        l=fun2()
        while True:
            n=next(l)    #返回的序列
            yield n
            l=filter(not_divisible(n),l)    #l是惰性序列,可以直接用在filter

    再消化一下……

  • 相关阅读:
    抽象类abstract
    final关键字特点
    继承ExtendsFour
    继承(继承中构造方法的关系)
    继承ExtendsTwo-super&this
    继承ExtendsOne
    静态
    构造方法与setXxx方法
    15.8
    15.7
  • 原文地址:https://www.cnblogs.com/drifter/p/9205834.html
Copyright © 2011-2022 走看看