赞
踩
题目: 孪生素数
相连的两个数的差是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]
tip 1: 建立一个有100个true的元素的列表 [True] * 100
attention: true 和false 在python中首字母要记得是大写的
tip 2: 此题目的关键还是求解素数,利用不同的思路去求解 可以简化运算
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。