python练习:可逆素数

该博客探讨了如何用Python找出1到900之间的可逆素数,即正序和反序都是素数的数。首先,通过筛法筛选出1-900之间的所有素数,然后对每个素数进行反转,检查反转后的数是否依然为素数,如果是,则输出这两个数。博主使用了优化的筛法,减少了不必要的计算,提高了效率。
摘要由CSDN通过智能技术生成
题目:可逆素数
问题描述:

编写程序找出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、付费专栏及课程。

余额充值