Discuss / Python / 求素数看不懂

求素数看不懂

Topic source

饭未眠

#1 Created at ... [Delete] [Delete and Lock User]
def _not_divisible(n):
    return lambda x: x % n > 0

x是多少呢,在filter返回什么结果呢

个人理解,lambda里面的x就相当于变量,在后面调用的时候提供了x的值,就是it里的数

def _not_divisible(n): return lambda x: x % n > 0

这个地方了解x,但是n的取值就不了解了,有人能帮忙解答一下吗?

我认为,n的话相当于筛选,前面提到素数的求法是先剔除2的倍数(求奇数列it),然后用next(it)依次剔除3、7等数的倍数,从而得到素数列

如果这样解释,好像是能通。再研究一下

czzga

#6 Created at ... [Delete] [Delete and Lock User]
def _not_divisible(n):
    return lambda x: x % n > 0

返回的是一个函数,比如n=3时,返回值是lambda x: x % 3 >0

filter(_not_divisible(n), it)就相应变成了filter(lambda x: x % 3 >0, it)


  • 1

Reply