python学习4
2016-06-07 14:03
417 查看
题目: 孪生素数
相连的两个数的差是2 的素数
思想: 筛选法选择素数
1. 建立一个列表,然后将素数都标记为true
2. 然后分别寻找其中的素数的n倍的数字,将这个数字从列表中删除,那么剩下的就是所要选择的素数( 素数的去计算就可以啦 如果不是素数根本没有必要再去求他的n倍的数字)
D:\Python27\python.exe D:/Users/Administrator.WIN-18C3F3UE14U/PycharmProjects/untitled/exercise1.py
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
5
7
13
19
31
43
61
73
tip 1: 建立一个有100个true的元素的列表 [True] * 100
attention: true 和false 在python中首字母要记得是大写的
tip 2: 此题目的关键还是求解素数,利用不同的思路去求解 可以简化运算
相连的两个数的差是2 的素数
思想: 筛选法选择素数
1. 建立一个列表,然后将素数都标记为true
2. 然后分别寻找其中的素数的n倍的数字,将这个数字从列表中删除,那么剩下的就是所要选择的素数( 素数的去计算就可以啦 如果不是素数根本没有必要再去求他的n倍的数字)
# 2 -----4 6 8... take this table in the # 3-------9 12 ... multiply the number that is bigger than itself # establish a table y = [True] * 100 # establish null table for the new table new=[] for nob in range(2, 100): if not y[nob] : continue new.append(nob) for fal in range(nob * nob, 100, nob): y[fal]= False print new for i in range(1, len(new)): if new[i]-new[i-1]==2: print new[i]
D:\Python27\python.exe D:/Users/Administrator.WIN-18C3F3UE14U/PycharmProjects/untitled/exercise1.py
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
5
7
13
19
31
43
61
73
tip 1: 建立一个有100个true的元素的列表 [True] * 100
attention: true 和false 在python中首字母要记得是大写的
tip 2: 此题目的关键还是求解素数,利用不同的思路去求解 可以简化运算
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法