判断质数和合数python代码_质数,非质数之Python
质数的定义:指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数(百度百科)
自然数的定义:指用以计量事物的件数或表示事物次序的数。即用数码0,1,2,3,4……所表示的数。自然数由0开始,一个接一个,组成一个无穷的集体。自然数有有序性,无限性。分为偶数和奇数,合数和质数等(百度百科)
问题:怎么找出n(n为大于2的自然数)内的全部质数?
我们已知大于2的偶数自然数均为合数,大于2的奇数自然数却由质数和合数组成。那么,如果我们把奇数中的合数全部去掉(合数有质数相乘得到的,如:10=2*5),奇数中的剩余部分便全是质数了,最后添加一个2便是最终结果。举例说明:
现求100以内的全部质数,将[3,100]区间的数据分为奇数和偶数,偶数部分全为合数,奇数部分有3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,99。(以下的数字都是此数据中的数)
第一个数字是3(质数),我们先除去range(3*2,101,2*3)的合数(因为奇数*偶数=偶数,奇数+偶数=奇数,偶数已被我们剔除,所以乘奇数倍),得到的结果有3,5,7,11,13,17,19,23,25,29,31,35,37,41,43,47,49,53,55,59,61,65,67,71,73,77,79,83,85,89,91,95,97
第二个数字是5(质数),再除去range(5**2,101,2*5)。得到的结果有3,5,7,11,13,17,19,23,29,31,37,41,43,47,49,53,59,61,67,71,73,77,79,83,89,91,97
第三个数字是7(质数),再出去range(7**2,101,2*7),得到的结果有3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97
第四个数字是9(合数),过
第五个数字是11(质数),但是11**2>100,则第五个数字后都不用管,再第三步的结果中添加2变为100内的全部质数。
而大于2的全部合数是:range(4,101,2),range(9,101,6),range(25,101,10),range(49,101,14)
以下是python提取质数的代码过程(返回的集合,i5处理器,10000000内的全部质数耗时约2.3s):
from itertools import chain
def prime_set3(a):
b=[] # 存放合数
for i in range(3, int(a**0.5)+1, 2):
number = 0
for n in range(3, i, 2):
if i % n == 0 and i > n:
number = 1
break
if number == 1:
continue
b.append(range(i**2, a+1, 2*i))
aa = set(chain([2],range(3, a+1, 2)))
bb = set(chain(*b))
prime = aa - bb
return prime
以下是上述代码的雏形:
from itertools import chain
def prime_set(a):
b=[]
for i in range(2,int(a**0.5)+1):
b.append((range(i**2,a+1,i)))
sa=set(range(2,a+1))
sb=set(chain(*b))
prime=sa-sb
return prime
判断质数和合数python代码_质数,非质数之Python相关推荐
- latex附录中放python代码_在Latex中插入Python代码
这里指的插入是指最终能在生成的pdf中显示高亮的Python代码. 在Latex中插入Python代码,需要一个第三发的宏包pythonhighlight: https://github.com/ol ...
- apriori算法python代码_通俗易懂Apriori算法及Python实现
本篇分为三个部分: 一.算法背景 啤酒与尿布故事: 某超市为增加销售量,提取出了他们超市所有的销售记录进行分析.在对这些小票数据进行分析时,发现男性顾客在购买婴儿尿片时,通常会顺便搭配带打啤酒来犒劳自 ...
- python代码_如何使用 Sphinx 给 Python 代码写文档
最好将文档作为开发过程的一部分.Sphinx 加上 Tox,让文档可以轻松书写,并且外观漂亮.-- Moshe Zadka(作者) Python 代码可以在源码中包含文档.这种方式默认依靠 docst ...
- 20个python代码_有用的20个python代码段(4)
有用的20个python代码段(4): 1.使用列举获取索引和值对 以下脚本使用列举来迭代列表中的值及其索引.my_list = ['a', 'b', 'c', 'd', 'e'] for index ...
- sublime运行python代码_怎么用sublime运行python
首先需要安装一个Sublime Text(http://www.sublimetext.com/)和一个Python(https://www.python.org/downloads/) 接下来打开S ...
- 如何读懂python代码_教你如何阅读 Python 开源项目代码
作者: Destiny 来源:https://learnku.com/articles/23010/teach-you-to-read-the-python-open-source-project-c ...
- 猿编程python代码_程序猿编程课堂 Python学习之入门篇3:简单的数据类型
1. 什么是数据类型? 我们知道编程就是编写程序解决某个问题,而任何能使用编程来解决的问题都是能够提取或者转换出相应的数据,只是数据的表达形式是不一样的,而这表达形式就是数据类型. 比如,数学中的数字 ...
- 石头剪刀布python代码_我的第一个python程序,石头剪刀布猜拳游戏
从决定学习python到今天,已经过去了好1个月,买的几本书还没一本看完的,惭愧. 忙不是借口,是时候来点计划,来点坚持.写点什么吧,算是学习的记录,也是对自己的鞭策. 今天写一个猜字游戏,模仿正在读 ...
- 牛逼的python代码_牛逼了!Python代码补全利器,提高效率告别996!
给大家介绍一款专门针对Python的代码自动补全利器: Kite,效果绝佳.它的使用条件很简单,支持多种IDE和操作系统,并且免费使用.支持Windows.Mac.Linux 支持Atom.PyCha ...
- 如何制作python代码_如何使用50行Python代码制作一个计算器
(点击上方公号,可快速关注) 作者:Stories For Sad Robots 译者:开源中国社区 链接:http://www.oschina.net/translate/how-to-write- ...
最新文章
- css控制非固定文本自动换行
- jenkins同平台发布
- 【译】Pure Proof-of-Stake Blockchains: Secure Blockchain Decentralization via Committees
- 机器学习:SVM多分类,SVM回归(SVR)
- 逆向工程核心原理学习笔记(三):检索API方法
- 使用react实现select_使用 Hooks 优化 React 组件
- 用内卷搞垮团队!您可真行
- sqlalchemy 初始化数据库
- 今天给2010买的三星R428升级一下固态硬盘
- 1.两数之和-LeetCode
- 我的软件开发方法论2:复利方法观
- 微积分memo——一元函数积分学
- xThunder —— 完美支持Firefox的迅雷,旋风调用扩展
- Gtarcade的Hunger Heroes游戏马拉松即将开始
- 四、Vue项目去哪儿网首页推荐和周末游组件并使用Axios获取数据
- 攻防世界pwn难度1
- Shell脚本学习指南(三)——文本处理工具
- 《阁夜》杜甫:岁暮阴阳催短景,天涯霜雪霁寒宵。
- “serve with message ‘spawn vue-cli-service ENOENT”的解决办法
- 推荐几款渗透测试常用的脚本(记得收藏)