Python筛法求质数(素数)的生成器示例,python质数,本篇为大家提供的Pyth
Python筛法求质数(素数)的生成器示例,python质数,本篇为大家提供的Pyth
本篇为大家提供的Python源码是算法相关的:Python筛法求质数(素数)的生成器示例。需要用到math模块的方法。
Python筛法求质数(素数)的生成器的基本思路如下:好比用筛法求素数,用筛法求素数的基本思想是:把从1开始的某一范围内的正整数从小到大顺序排列。因为1不是素数,所以首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推直到筛子为空时结束。
#!/usr/bin/python# -*- coding: utf-8 -*-import mathdef gen_sieve(ceiling=None): if ceiling is not None: if ceiling % 2 == 0: ceiling -= 1 highest_prime = math.ceil(math.sqrt(ceiling)) last_val = 1 found_primes = [] yield 2 while ceiling is None or ceiling > last_val: current_val = None while current_val is None: current_val = last_val = last_val + 2 for prime, square in found_primes: if current_val < square: break if current_val % prime == 0: current_val = None break yield current_val if ceiling is None or highest_prime > last_val: found_primes.append((current_val, current_val ** 2))#www.iplaypy.comdef isprime(n): for fac in gen_sieve(int(math.ceil(math.sqrt(n)))): if n % fac == 0 and n != fac: return fac return 0
Python素数算法相关文章推荐:Python求素数的快速算法源码示例
编橙之家文章,
相关内容
- Python实现跨平台获取按键方法源码示例,python源码,本文
- Python计算n*n网格生成树数目的方法,python网格,Python计算
- Python实现HTML颜色和RGB颜色互转的方法,pythonrgb,本文是
- Python随机产生迷宫生成算法源码,python算法,用Python语言
- Python方法如何将普通IP转换为十进制IP,python十进制,P
- Python组合生成与数量计算的实现方法,python组合数量计
- Python实现Windows自动切换代理的方法,python自动切换,本
- Python常见排序算法实现与测速源码,python测速,Python常见
- Python统计代码行数的快捷方法,python统计行数,想知道一
- 如何用Python方法获取图片的准确尺寸,,Python如何获取图
评论关闭