题目:
代码如下:
package jisuanke;
public class Ti2 {
public static int[] p=new int[8];
public static int count=0;
public static boolean Isexist(int t) {
for(int i=0;i<8;i++) {
if(p[i]==t) {
return true;
}
}
return false;
}
public static void dfs(int u) {
if(u==8) {
put();
return;
}
for(int i=0;i<8;i++) {
if(!Isexist(i)) {
p[u]=i;
dfs(u+1);
p[u]=8;
}
}
}
public static boolean isPrimeNumber(int num){
if(num == 2) return true;//2特殊处理
if(num < 2 || num % 2 == 0) return false;//识别小于2的数和偶数
for(int i=3; i<=Math.sqrt(num); i+=2){
if(num % i == 0){//识别被奇数整除
return false;
}
}
return true;
}
public static void put() {
int sum=0;
if(p[0]!=0) {
for(int i=0;i<8;i++) {
sum=sum*10+p[i];
}
//System.out.println(sum);
if(isPrimeNumber(sum)) {
System.out.println(sum);
count++;
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=0;i<8;i++) {
p[i]=8;
}
dfs(0);
System.out.println(count);
}
}