python学习5
2016-06-07 17:15
246 查看
题目: 可逆素数 1~900之间的可逆素数 (一个数颠倒位置后仍然是素数)
思路: 首先利用筛选法找出所有的素数 建立在一个table中
然后再去迭代每个素数 (在表中的就是说是true的标记的就是素数)去生成一个反序数 (一位数的数字是没有反序数的)然后再去判断是不是素数
寻找反序数的方法 是利用字符串的思想
如果反序数是素数的话 我们还要避免后面的重复查找的操作 同时还要判断反序数不能超过900 同时还要过滤到反序数不能等于其自身 (这个三个点很难考虑到,coding的时候要注意考虑全面)
13 31
17 71
37 73
79 97
107 701
113 311
157 751
167 761
337 733
347 743
关键点: 注意以上定义的这个方法 返回的是有n个元素的列表只是这些个列表的元素值为true 或者是false 用来标记所制定的index是不是一个素数
tip 1 : 这边可以将筛选法的定义成一个生成素数的table的函数 ,这样就可以调用
tip 2: 寻找反序数的方法 是利用字符串的思想str() 内建函数 可以将任何类型转换成字符串类型输出
字符串的创建: 利用str() 也可以直接利用单引号赋值给某个变量
字符串的访问:因为在python中是没有字符的概念的,所以在访问字符串的时候就是利用[1] or [ 1 : 5] or [6 : ]即利用方括号再加上一个索引或者是多个索引的方式来访问子字符串
字符串的改变:由于字符串的是不可改变的,所以只能通过给新的变量重新赋值一个新的字符串或者是重复值原有的变量 若删除的话,也是要重新组合 或者就是赋空值清空字符串或者就是del
字符串的操作符:序列操作符切片[ ] [ : ]
[ start : end ] visti the number from the start to the end but not including the index of end
attention:如果开始和结束的index 并没有指定 ,那么默认就是第一个和最后一个 同时这种操作符切片可以访问字符串的一个或者一串的字符
正向索引:0 开始
反向索引:从-1 开始
123
123
12
23
321 实现了反序
12
思路: 首先利用筛选法找出所有的素数 建立在一个table中
然后再去迭代每个素数 (在表中的就是说是true的标记的就是素数)去生成一个反序数 (一位数的数字是没有反序数的)然后再去判断是不是素数
寻找反序数的方法 是利用字符串的思想
如果反序数是素数的话 我们还要避免后面的重复查找的操作 同时还要判断反序数不能超过900 同时还要过滤到反序数不能等于其自身 (这个三个点很难考虑到,coding的时候要注意考虑全面)
#define a method to get the prime numbers between 0~n #coding utf - 8 def getPrimeTable(n) : y = [True] * n for num in range(2,n): if not y[num]: continue for fal in range(num *num , n, num): y[fal]=False return y # this method get the table with the true or false to sign the each number between 0~n # reverse the number prime=getPrimeTable(900) #the value of the table is true or the false for x in range(11, 900): if not prime[x]:continue reserve=int(str(x)[ : :-1]) #get the reverse numbers if reserve<900 and prime[reserve] and reserve != x : prime[reserve]=False print x,reserve
13 31
17 71
37 73
79 97
107 701
113 311
157 751
167 761
337 733
347 743
关键点: 注意以上定义的这个方法 返回的是有n个元素的列表只是这些个列表的元素值为true 或者是false 用来标记所制定的index是不是一个素数
tip 1 : 这边可以将筛选法的定义成一个生成素数的table的函数 ,这样就可以调用
tip 2: 寻找反序数的方法 是利用字符串的思想str() 内建函数 可以将任何类型转换成字符串类型输出
字符串的创建: 利用str() 也可以直接利用单引号赋值给某个变量
字符串的访问:因为在python中是没有字符的概念的,所以在访问字符串的时候就是利用[1] or [ 1 : 5] or [6 : ]即利用方括号再加上一个索引或者是多个索引的方式来访问子字符串
字符串的改变:由于字符串的是不可改变的,所以只能通过给新的变量重新赋值一个新的字符串或者是重复值原有的变量 若删除的话,也是要重新组合 或者就是赋空值清空字符串或者就是del
字符串的操作符:序列操作符切片[ ] [ : ]
[ start : end ] visti the number from the start to the end but not including the index of end
attention:如果开始和结束的index 并没有指定 ,那么默认就是第一个和最后一个 同时这种操作符切片可以访问字符串的一个或者一串的字符
正向索引:0 开始
反向索引:从-1 开始
0 | 1 | 2 | 3 |
-4 | -3 | -2 | -1 |
y=123 x=str(y) print x print x[ : ] print x[0:2] print x[1: ] print x[ : :-1] print x[-3 :-1]
123
123
12
23
321 实现了反序
12
相关文章推荐
- 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函数示例