题目:可逆素数
问题描述:
编写程序找出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