请从小到大输出所有4位数的可逆素数。可逆素数指: 一个素数将其各位数字的顺序倒过来构成的反序数也是素数。
输入格式:
无
输出格式:
一行中以空格间隔输出可逆素数,行尾无空格。行末尾无多余空格和换行
输入样例:
无
输出样例:
无
代码如下:
public class Main {
public static void main(String[]args){
int[] num = new int[10000];
//因为最后一个数后没有空格,而且通过运行代码可知第一个符合条件的就是1009,所以直接输出
System.out.print(1009);
//通过埃氏筛法将所有的素数找出
for(int i=3;i<10000;i+=2) {
if(num[i]==0) {
int j = 3*i;
while(j<10000) {
num[j] = 1;
j+=(i*2);
}
}
}
for(int i=1011;i<10000;i+=2) {
if(num[i]==0) {
int tmp = 0, j=i; //tmp存放转制后的数
while(j!=0) {
tmp = tmp*10+j%10;
j/=10;
}
if(tmp%2!=0 && num[tmp]==0) { //若符合条件,输出
System.out.print(" "+i);
}
}
}
}
}