可逆素数
2016-06-23 11:16
302 查看
程序地址:http://www.cheemoedu.com/exercise/22
问题描述:
编写程序找出1~900之间的所有可逆素数(可逆素数是指一个素数的各位数值顺序颠倒后得到的数仍为素数,如113、311)。
我的代码:
结果:
2 3 5 7 11 13 17 37 79 101 107 113 131 149 151 157 167 179 181 191 199 313 337 347 353 359 373 383 389 709 727 739 757 769 787 797
我的思路:
过程很简单,先定一个判断传入的数是否为素数的函数,然后遍历900以内的数,判断原数和反序后的数是否都是素数,是的话就输出;
反序整数时一个简单的做法是:先将其字符串化,然后对该字符串进行切片,最后再int化为整型;
示例代码:
示例代码判断是否为素数的方法:http://www.cheemoedu.com/exercise/20
问题描述:
编写程序找出1~900之间的所有可逆素数(可逆素数是指一个素数的各位数值顺序颠倒后得到的数仍为素数,如113、311)。
我的代码:
import math def prime(n): count=0 for i in range(2,int(math.sqrt(n))+1): if n%i==0: count=1 if count==0: return True else: return None for j in range(2,900): k=int(str(j)[::-1]) if prime(j) and prime(k) and j<=k: print j,
结果:
2 3 5 7 11 13 17 37 79 101 107 113 131 149 151 157 167 179 181 191 199 313 337 347 353 359 373 383 389 709 727 739 757 769 787 797
我的思路:
过程很简单,先定一个判断传入的数是否为素数的函数,然后遍历900以内的数,判断原数和反序后的数是否都是素数,是的话就输出;
反序整数时一个简单的做法是:先将其字符串化,然后对该字符串进行切片,最后再int化为整型;
示例代码:
def getPrimeTable(n): pt = [True] * n for p in range(2, n): if not pt[p]: continue for i in range(p * p, n, p): pt[i] = False return pt pt = getPrimeTable(900) for p in range(10, 900): if not pt[p]: continue q = int(str(p)[::-1]) if p != q < 900 and pt[q]: pt[q] = False print p, q
示例代码判断是否为素数的方法:http://www.cheemoedu.com/exercise/20
相关文章推荐
- JAVA连接sybase数据库程序代码
- [转载]java.lang.String中的…
- Java常用判断密码强弱方法
- 361度公司员工大罢导制5.31…
- 职来职往潘婷婷获得全部18盏…
- 红楼梦诗词
- Android---服务(Service)的绑定服务
- 职来职往潘婷婷获得全部18盏…
- 关系是泥饭碗,是会碎的;文…
- Druid:简介
- [电脑应用] 金士顿内存大小为何显…
- 编程之路之c++ (心得)
- 水与人体
- ADSL(中国电信\电信)常见故障代码…
- 利用 libiconv 实现汉字编码 utf-8 格式 和 gbk格式的相互转换
- iOS--优秀博客记录
- 第二次冲刺阶段08
- java 环境配置 JSP+TOMCAT+MYS…
- 自动配置icon和launchImage不同尺寸的插件RTImageAssets
- java.lang.NoClassDefFoundError: …