判断素数系列
来源:互联网 发布:淘宝达人直播怎么开通 编辑:程序博客网 时间:2024/06/07 03:26
判断素数:检查一个正整数N是否为素数,最简单的方法就是试除法,将该数N用小于等于根号N的所有素数去试除,若均无法整除,N则为素数
可以用下面代码去打印,或者直接在shell里面输入mygen.__next__()
def isprime(n): for i in range(2,(int(n**0.5))+1): if n % i == 0: return False return True
高效率办法:
减少 除数n 的选取个数就行了。
比如 n = 4,既然4 能被 2 整除,也就是说 一个连2都无法整除的数,也无法被4整除,该直接使用5(素数,作为素数无法被整除,且所有的 合数都能被 素数表示)。因此我们使用 素数作为除数可以极大提高效率。另外选择的素数也不能大于被除数,因为无法 大数整除小数。
因此采用 素数数组作为除数是一种高效的选择。
无限制判断素数程序:
#python 3.4.1import mathdef oddgen(n): while True: yield n n += 2def isprime(n): for i in range(2,int(n**0.5)+1): if n % i == 0: return False return Truedef genpir(): yield 2 for n in oddgen(3): if isprime(n): yield nmygen = genpir()
可以用下面代码去打印,或者直接在shell里面输入mygen.__next__()
print([mygen.__next__() for i in range (50)])上面的程序用了生成器
一种高效的打印素数的方法(来自网络):
import mathdef prime(n): primes = [2] primet = [2] for x in range(3,n+1,2): if primet[-1] ** 2 < x: primet.append(primes[len(primet)]) for i in primet: if x % i == 0: break else: primes.append(x) return primes
0 0
- 判断素数系列
- 判断素数系列
- C++练习之 素数系列(判断单个数是否为素数,输出一定范围的素数,循环判断素数)
- 质数与合数系列——素数判断
- 素数判断
- 判断素数
- 判断素数
- 判断素数
- 素数判断
- 判断素数
- 判断素数
- 判断素数
- 判断素数
- 判断素数
- 判断素数
- 素数判断
- 判断素数
- 判断素数
- SpringMVC集成Tiles2
- 广播(Broadcast内部机制讲解)
- Activity启动模式 及 Intent Flags 与 栈 的关联分析
- java选择排序SelectSort的代码和使用(包含清晰完成过程)
- 即时通讯云服务·融云开发者沙龙活动(10月份)公告
- 判断素数系列
- box2d b2Filter 碰撞过滤
- host 域名
- 【产品设计】互联网思维概念
- app从appstore上下载下来后崩溃。但是我手机曾用xcode装过,从appstore上下载就没有问题
- C#学习之值类型与引用类型
- vxworks VS linux
- android应用开发详解(八)----------------常用组件之进度条(续)
- Ubuntu搭建Tomcat环境