Python 利用filter函数求素数

首先从2开始自然数序列

2,3,4,5,6,7,8,9,10,11,12,13,14……

剔除2和2 的倍数,奇数列

3,5,7,9,11,13,15,17,19……

剔除3的倍数

5,7,11,13,17,19

剔除5的倍数,以此类推

#创建一个奇数序列

def jishu():

  n=1

  while True:

  n=n+2

  yield n #迭代器Iterator,惰性序列

#创建一个过滤函数

def guolv(first):

  return lambda x:x % first>0

#定义一个生成器返回素数

def sushu():

  yield 2

  it=jishu()#奇数序列

  while True:

    first=next(it)

    yield first

    it=filter(guolv(first),it)#过滤后得到新的迭代器

for n in sushu():

  if n<100:

    print(n)

  else:

    break

  

时间: 2024-07-30 05:23:17

Python 利用filter函数求素数的相关文章

python中filter函数

python中filter()函数 filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list. 例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的函数: def is_odd(x): return x %

python中filter()函数

filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list. 例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的函数: def is_odd(x): return x % 2 == 1 然后,利用filter

PTA 6-1 使用函数求素数和

本题要求实现一个判断素数的简单函数.以及利用该函数计算给定区间内素数和的函数. 素数就是只能被1和自身整除的正整数.注意:1不是素数,2是素数. 函数接口定义: int prime( int p ); int PrimeSum( int m, int n ); 其中函数prime当用户传入参数p为素数时返回1,否则返回0:函数PrimeSum返回区间[m, n]内所有素数的和.题目保证用户传入的参数m≤n. 裁判测试程序样例: #include <stdio.h> #include <m

习题5-4 使用函数求素数和(20 分)

本题要求实现一个判断素数的简单函数.以及利用该函数计算给定区间内素数和的函数. 素数就是只能被1和自身整除的正整数.注意:1不是素数,2是素数. 函数接口定义: int prime( int p ); int PrimeSum( int m, int n ); 其中函数prime当用户传入参数p为素数时返回1,否则返回0:函数PrimeSum返回区间[m, n]内所有素数的和.题目保证用户传入的参数m≤n. 裁判测试程序样例: #include <stdio.h> #include <m

Python基础-----filter函数

#!/usr/bin/env python# -*- coding:utf-8 -*-'''filter过滤器'''# 若有一个需求用于实现:过滤掉一个列表中含有指定字符串的元素 '''1.普通函数 people_list = ['a','b_sb','c','d_sb']#定义功能函数用于判断列表元素def sb_show(n): return n.endswith('sb') #定义主函数,用于筛选列表def filter_test(func,array): ret = [] for p i

习题5-4 使用函数求素数和 (20分)

本题要求实现一个判断素数的简单函数.以及利用该函数计算给定区间内素数和的函数. 素数就是只能被1和自身整除的正整数.注意:1不是素数,2是素数. 函数接口定义: int prime( int p ); int PrimeSum( int m, int n ); 其中函数prime当用户传入参数p为素数时返回1,否则返回0:函数PrimeSum返回区间[m, n]内所有素数的和.题目保证用户传入的参数m≤n. 裁判测试程序样例: #include <stdio.h> #include <m

[MATLAB] 利用遗传算法函数求目标函数的最优解

最近接触到了遗传算法以及利用遗传算法求最优解,所以就把这些相关的内容整理记录一下. 一.遗传算法简介(摘自维基百科) 遗传算法(英语:genetic algorithm (GA))是计算数学中用于解决最佳化的搜索算法,是进化算法的一种.进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传.突变.自然选择以及杂交等. 算法 选择初始生命种群 循环 评价种群中的个体适应度 以比例原则(分数高的挑中概率也较高)选择产生下一个种群. 改变该种群(交叉和变异) 直到停止循环的条件满足

python埃式筛法求素数

def _odd_iter(): n = 1 while(True): n = n + 2 yield n def _not_divisable(n): return lambda x : x % n > 0 def primes(): yield 2 it = _odd_iter() while(True): n = next(it) yield n it = filter(_not_divisable(n), it) for n in primes(): if n < 1000: prin

MATLAB 利用filter函数实现滑动平均滤波

function [ y ] = moving_average( x, win_size ) y1=filter(ones(1,win_size/2+1)/win_size,1,x); y2=filter(ones(1,win_size/2+1)/win_size,1,fliplr(x)); y=y1+fliplr(y2)-(1/win_size)*x; end L = win_size/2; yi = (1/win_size)∑(j=i-L:i+L)xj