Python求解任意闭区间的所有素数
题目:请求出任意区间[a,b]的所有素数,简单考虑实用性
这道题看起来应该很easy是吧,但任意区间(这个问题有没get 到)
Afanty的分析:
1、首先明白什么叫素数,注意用求余法判断的循环上限应该为sqrt(n)吧?
2、任意区间,a,b是不是可以为负数、小数等。
所以是不是要首先对区间下限向上取整、区间上限向下取整,得到新的区间[a,b]再判断呀:
如何判断?
case1:当b<0,是不是就不用求解啦
case2:当a<0,b>0,是不是a应该从1开始,区间变为[1,b]
case3:当a>0,b>0,是不是区间还是[a,b]
python的实现相关函数
math.ceil()
math.floor()
math.sqrt()
相关推荐
-
Python实现高效求解素数代码实例
素数是编程中经常需要用到的. 作为学习Python的示例,下面是一个高效求解一个范围内的素数的程序,不需要使用除法或者求模运算. #coding:utf-8 #设置python文件的编码为utf-8,这样就可以写入中文注释 def primeRange(n): myArray=[1 for x in range(n+1)] ##列表解析,生成长度为(n+1)的列表,每个数值都为1 myArray[0]=0 myArray[1]=0 startPos=2 while startPos <= n:
-
Python编程判断一个正整数是否为素数的方法
本文实例讲述了Python编程判断一个正整数是否为素数的方法.分享给大家供大家参考,具体如下: import string import math #判断是否素数的函数 def isPrime(n): if(n<2): return False; elif(n==2): return True; elif(n>2): for d in range(2,int(math.ceil(math.sqrt(n))+1)): if(n%d==0): return False; return True;
-
Python实现输出某区间范围内全部素数的方法
本文实例讲述了Python实现输出某区间范围内全部素数的方法.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- # 简述:区间范围101-200 # 要求:判断这个区间内有多少个素数,并逐一输出. def prime(m,n): list1=[] list2=[] for i in range(m,n+1): list1.append(i) for j in range(2,m/2): if i%j==0: list2.append(i) break #print
-
Python实现求最大公约数及判断素数的方法
本文实例讲述了Python实现求最大公约数及判断素数的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python def showMaxFactor(num): count = num / 2 while count > 1: if num % count == 0: print 'largest factor of %d is %d' % (num, count) break #break跳出时会跳出下面的else语句 count -= 1 else: prin
-
Python素数检测的方法
本文实例讲述了Python素数检测的方法.分享给大家供大家参考.具体如下: 因子检测: 检测因子,时间复杂度O(n^(1/2)) def is_prime(n): if n < 2: return False for i in xrange(2, int(n**0.5+1)): if n%i == 0: return False return True 费马小定理: 如果n是一个素数,a是小于n的任意正整数,那么a的n次方与a模n同余 实现方法: 选择一个底数(例如2),对于大整数p,如果2^(
-
Python素数检测实例分析
本文实例讲述了Python素数检测的方法.分享给大家供大家参考.具体如下: 该程序实现了素数检测器功能,如果结果是true,则是素数,如果结果是false,则不是素数. def fnPrime(n): for i in range(2,n,1): if(n % i == 0): return bool(0) return bool(1) 希望本文所述对大家的Python程序设计有所帮助.
-
python素数筛选法浅析
原理: 素数,指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数.在加密应用中起重要的位置,比如广为人知的RSA算法中,就是基于大整数的因式分解难题,寻找两个超大的素数然后相乘作为密钥的.一个比较常见的求素数的办法是埃拉托斯特尼筛法(the Sieve of Eratosthenes) ,说简单一点就是画表格,然后删表格,如图所示: 从2开始依次往后面数,如果当前数字一个素数,那么就将所有其倍数的数从表中删除或者标记,然后最终得到所有的素数. 有一个优化: 标记2和3的倍数
-
Python 判断是否为质数或素数的实例
一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除(2, 3, 5, 7等),换句话说就是该数除了1和它本身以外不再有其他的因数. 首先我们来第一个传统的判断思路: def handlerNum(num): # 质数大于 1 if num > 1: # 查看是否有其他因子 for i in range(2, num//2+1): if (num % i) == 0: print(num,"不是质数") break else: print(num, "是质
-
使用Python判断质数(素数)的简单方法讲解
质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数.素数在数论中有着很重要的地位.比1大但不是素数的数称为合数.1和0既非素数也非合数.质数是与合数相对立的两个概念,二者构成了数论当中最基础的定义之一.基于质数定义的基础之上而建立的问题有很多世界级的难题,如哥德巴赫猜想等.算术基本定理证明每个大于1的正整数都可以写成素数的乘积,并且这种乘积的形式是唯一的.这个定理的重要一点是,将1排斥在素数集合以外.如果1被认为是素数,那么这些严格的阐述就不得不加上一些限制条
-
Python求出0~100以内的所有素数
质数又称素数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数:否则称为合数. 一.判断一个数是否为素数: 基于定义 def is_prime(num): if num <= 1: return '%d是一个合数' % num for i in range(2, num): if not num % i: return '%d是一个合数' % num else: return '%d是一个素数' % num 考虑合数的性质 def is_prime(num): if num
-
python求素数示例分享
复制代码 代码如下: # 判断是否是素数def is_sushu(num): res=True for x in range(2,num-1): if num%x==0: res=False return res return res # 打印出素数列表print ([x for x in range(1000) if is_sushu(x)])
-
python使用筛选法计算小于给定数字的所有素数
本文实例为大家分享了python计算小于给定数字的所有素数的具体代码,供大家参考,具体内容如下 代码思路:首先列出指定范围内所有候选数字,然后从前往后依次选择一个数字去除以后面所有数字,能够被整除的肯定不是素数,把这些数字过滤掉,然后重复这个过程,直到选择的除数大于最大数字的平方根为止.代码主要演示内置函数filter()和切片的用法,实际上这个算法的效率并不是很高. def primes2(maxNumber): '''筛选法获取小于maxNumber的所有素数''' #待判断整数 lst =
随机推荐
- URL Rewrite的设置方法
- Python入门_浅谈for循环、while循环
- php mysql获取表字段名称和字段信息的三种方法
- angularjs在ng-repeat中使用ng-model遇到的问题
- Kibo 用于处理键盘事件的Javascript工具库
- 在javascript中,如果删除二维数组中重复的元素
- PHP在网页中动态生成PDF文件详细教程
- PHP的变量类型和作用域详解
- python3 shelve模块的详解
- 解决jsp开发中不支持EL问题
- Android省电的秘密之JobScheduler
- ASP 非法字符过滤函数
- linux下mysql 5.7.16 免安装版本图文教程
- DIV外区域Click后关闭DIV的实现代码
- 使用MySQL的LAST_INSERT_ID来确定各分表的唯一ID值
- PHP进程通信基础之信号量与共享内存通信
- PHP如何通过AJAX方式实现登录功能
- 利用Session欺骗构造最隐蔽的WebShell
- 详解Linux运维CentOS系统SVN双备份Shell脚本
- C#使用for循环移除HTML标记