您的位置:首页 > 编程语言 > Python开发

python学习4

2016-06-07 14:03 417 查看
题目: 孪生素数

        相连的两个数的差是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