python练习:可逆素数

题目:可逆素数
问题描述:

编写程序找出1 ~ 900之间的所有可逆素数(可逆素数是指一个素数的各位数值顺序颠倒后得到的数仍为素数,如113、311)。

解题思路

1、找到1-900之间所有素数并储存到一个表里面
2、迭代所有的数,是素数的话将素数转化成字符串,通过逆转操作,得到反序数
3、判断反序数是否是素数,如果是则打印出两个数

#通过筛法求素数
在这里插入图片描述
从2开始依次往后面数,如果当前数字一个素数,那么就将所有其倍数的数从表中删除或者标记,然后最终得到所有的素数。

筛法求素数有一个速度性能上的优化 1、先标记2,那么2的倍数都不是素数,依次 ,2,4,6,8,10,12都会被标记
2、标记3,应该是从9开始,而不是6,并且以3的倍数为间隔,来进行标记,这样减少大量运算时间
3、除了2以外,所有素数都是奇数。奇数的平方还是奇数,如果再加上奇数就变成了偶数一定不会是素数,所以加偶数(2倍素数)。
预先处理了所有偶数。

#筛法得到一个标记为素数的表
n=
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值