import?java.util.Arrays;
import?java.util.HashMap;
import?java.util.List;
import?java.util.Map;
public?class?Test6?{
//1487,?4817,?8147這個序列,每個比前壹個遞增3330,而且這個序列有兩個特點:
//1.?序列中的每個數都是質數。2.?每個四位數都是其他數字的壹種排列。
static?List<Integer>?list?=?new?ArrayList<Integer>();
static?Map<Integer,?Integer>?map=new?HashMap<Integer,?Integer>();
public?static?void?getAllPrime()?{
for(int?i=1000;i<10000;i++)
for(int?j=2;j<Math.sqrt(i);j++){
int?temp=(int)?Math.sqrt(i);
if(i%j==0)
break;
if(temp==j){
map.put(i,?i);
list.add(i);
}
}
}
public?static?void?printResult()?{
for(int?i=0;i<list.size();i++){
for(int?j=i+1;j<list.size();j++){
int?middle=(list.get(i)+list.get(j))/2;
if(i!=j&&(map.get(middle)!=null)){
char[]?min=(""+list.get(i)).toCharArray();
char[]?middle1=(""+middle).toCharArray();
char[]?max=(""+list.get(j)).toCharArray();
Arrays.sort(min);
Arrays.sort(middle1);
Arrays.sort(max);
if(isEqual(middle1,?min,?max))
System.out.println(?list.get(i)+"\t"+middle+"\t"+list.get(j));
}
}
}
}
public?static?boolean?isEqual(char[]a,char[]b,char[]c)?{
if(a[0]==b[0]&&b[0]==c[0]&&a[1]==b[1]&&b[1]==c[1]
&&a[2]==b[2]&&b[2]==c[2]&&a[3]==b[3]&&b[3]==c[3]){
return?true;
}
return?false;
}
public?static?void?main(String[]?args)?{
getAllPrime();
printResult();
}
}額,代碼寫的好醜陋,不過算是出結果了