python 中用filter求素数的时候,这里的筛选函数是什么意思

2025-06-20 19:25:41
推荐回答(1个)
回答1:

首先定义一个函数判断是否为素数,如果这个数能被2~它的平方根中的任一数整除的话它就不是素数,否则就是素数。用flag为0或1标记,利用filter()筛掉flag为0的非素数。

#!/usr/bin/env python
#coding:utf-8
import math
def filter_prime(n):    #定义filter_prime函数
    flag = 1    #设置flag,初始化为1
    for i in range(2, int(math.sqrt(n)+1)):     #取2至平方根的数
        if n%i == 0:    #判断是否是素数
            flag = 0     #如果不是,flag设为0
    if flag == 1:        #退出循环后判断flag,若为1(素数),则返回
        return n

print filter(filter_prime, range(1,101))    #filter 1-100里的非素数