判断素数/质数的快速算法
质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数)。——via维基百科
朴素算法:
1.
def isprime(n):""":type n:int:rtype:bool"""if n==1:return Falsefor i in range(2,n):if n%i==0:return Falsereturn True
2.
import math
def isPrime(n):
""":type n:int:rtype:bool"""if n == 1:return Falsefor i in range(2, int(math.sqrt(n)) + 1):if n % i == 0:return Falsereturn True
埃氏筛法: 运算速度更快的判断素数算法。
可以知道除了2(2是素数)以外的其他偶数都不是素数,除了3(3是素数)以外其他能被3整除的数都不是素数。所以一个素数的整数倍都不是素数,可以利用这一点编写算法如下:
def isprime(n):""":type n:int:rtype:List[int]"""s=[True for i in range(n+1)]#首先默认所有的数都是质数z=[]#存放质数for i in range(2,n+1):#1不是质数if s[i]:#判断是否为质数,如果没有被标记就是质数z.append(i)for j in range(i+i,n+1,i):#剔除倍数(如果是质数,质数的倍数一定不是质数)s[j]=Falsereturn z
算法参考:http://t.csdn.cn/s8wOY
判断素数/质数的快速算法相关推荐
- 判断素数(质数)高效算法
最近看到一篇高效的素数判断算法文章,但是文章中有些部分写的还不够完整清晰,所以在此详细记录一下此算法理解过程.(理解此算法前应先明白使用 sqrt(num) 为判断条件判断素数的方法) 此算法产生的原 ...
- 判断素数最有效的算法
目录 定义 1 常规方法判断 2 最有效方法判断 3 测试 定义 约数只有1和本身的整数称为质数,或称素数. 1 常规方法判断 根据定义,因为质数除了1和本身之外没有其他约数,所以判断n是否为质数,根 ...
- 判断素数———两种高效算法
相信大家在学习的过程中,时不时就会遇到判断素数的问题.今天就让我们来讨论讨论这个有趣的数学问题,看看如何更高效的来解决它吧! 在刚开始接触到这个问题时,我只想到了利用一个循环去在目标数的全部范围内一个 ...
- java求质数(素数)的快速算法
public static List<Integer> ListPrime(int n) { /* * false为质数,true为合数 */ boolean[] primeList = ...
- 求素数/质数 简单Java算法
基本定义 质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 与此相对应的是 合数 除2以外所有的质数都是奇数 质数表 (注意: 2 是 ) Java 代码 输出 100 以内 的 ...
- 【算法】素数(质数)判断方法
注:本篇文章已搬至个人博客中, 点击前往 素数(质数)的判断在算法问题中经常遇到,这里小结几种常用的判断方法. 素数(质数)的定义 首先,我们来看一下素数(质数)的定义:质数又称素数.一个大于1的自然 ...
- 算法——如何快速判断素数?
文章目录 前言 解决方案 方案1 方案2 方案3(最优算法) 总结 前言 最近闲来无事,刷刷题,碰到这样一个题目: 需求:要求实现一个判断素数的简单函数 相关信息:素数就是只能被1和自身整除的正整数. ...
- 判断素数的快速算法 sqrt()
我们在日常判断素数的程序中常用到如下代码 //判断数num是不是素数 for(i=2;i<num;i++){if(num%i==0)return 0;return 1; } 这样写无疑是没有问题 ...
- 素数(质数)判断方法
https://blog.csdn.net/songyunli1111/article/details/78690447 ->通俗易懂的解释 标准版:大部分人都知道的比较快的方法:判断从2到s ...
最新文章
- ruby on rails 之 延时执行代码
- 液体冷却将在数据中心重现
- ftp+nginx+lua_Nginx+GraphicsMagick来实现目录浏览、实时缩略图
- FindBugs Maven插件教程
- 【无线串口模块快速选型指南】通信频点、芯片、通信距离、功率灵敏度、电流 空中速率
- mysql的dockerfile_dockerfile构建mysql镜像
- hudi延迟日志命名
- bmvc哪个出版社出版_在出版饮食上
- 华三路由器虚拟服务器设置,H3C vLNS系列虚拟L2TP网络服务器 配置指导-E0324-5W100...
- c语言表达式必须包含指针类型,c – 错误:表达式必须是指向完整对象类型的指针(?)...
- grub引导项修复详解_win7开机grub引导修复教程
- pdf在线翻译_推荐可以pdf等格式直接在线翻译的免费工具
- Unity透明度不叠加
- USB学习入门(三)------众里寻他千百度(windows)
- USTC English Club Note20211227
- Vue3 项目遇到的问题
- python-定时给指定微信女朋友发送天气预报和每日一句自动聊天抢红包抢票
- FPT Software携手三井物产提升日本网络安全水平
- 闲话复数(1) | 不现实的虚数 i 为什么虚?它长成什么样?
- 有的歌声音大有的歌声音小_下载的歌曲声音小怎么办 怎么把歌曲声音变大