[code="java"]import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Problem60 {
public static boolean[] prime = new boolean[1000000];
public static boolean IsPrime(long number) {
for (int i = 2; i * i <= number; i++) {
if (number % i == 0)
return false;
}
return true;
}
public static void main(String[] args){
Arrays.fill(prime, false);
prime[1] = true;
prime[2] = true;
int count_prime = 0;
for(int i=3; i<1000; i=i+2){
if(IsPrime(i)){
prime[i] = true;
count_prime++;
}
}
int[] prime_set = new int[count_prime];
prime_set[0] = 1;
prime_set[1] = 3;
int index = 2;
for(int i=7; i<1000; i++){
if(prime[i])
prime_set[index++] = i;
}
for(int i=3; i<prime.length; i=i+2){
if(IsPrime(i)){
prime[i] = true;
}
}
System.out.println("prime_set:"+prime_set.length);
int len = prime_set.length;
int i=0,j=0,k=0,l=0,m=0;
for(i=0; i<len; i++){
for(j=i+1; j<len; j++){
int t1= Integer.parseInt(prime_set[i]+""+prime_set[j]);
int t2= Integer.parseInt(prime_set[j]+""+prime_set[i]);
if(!prime[t1]||!prime[t2]){
continue;
}
for(k=j+1; k<len; k++){
int t3= Integer.parseInt(prime_set[i]+""+prime_set[k]);
int t4= Integer.parseInt(prime_set[k]+""+prime_set[i]);
int t5= Integer.parseInt(prime_set[k]+""+prime_set[j]);
int t6= Integer.parseInt(prime_set[j]+""+prime_set[k]);
if(!prime[t3]||!prime[t4]||!prime[t5]||!prime[t6]){
continue;
}
for(l=k+1; l<len; l++){
int t7= Integer.parseInt(prime_set[i]+""+prime_set[l]);
int t8= Integer.parseInt(prime_set[l]+""+prime_set[i]);
int t9= Integer.parseInt(prime_set[l]+""+prime_set[j]);
int t10= Integer.parseInt(prime_set[j]+""+prime_set[l]);
int t11= Integer.parseInt(prime_set[k]+""+prime_set[l]);
int t12= Integer.parseInt(prime_set[l]+""+prime_set[k]);
if(!prime[t7]||!prime[t8]||!prime[t9]||!prime[t10]||!prime[t11]||!prime[t12]){
continue;
}
for(m=l+1; m<len; m++){
int t13= Integer.parseInt(prime_set[i]+""+prime_set[m]);
int t14= Integer.parseInt(prime_set[m]+""+prime_set[i]);
int t15= Integer.parseInt(prime_set[m]+""+prime_set[j]);
int t16= Integer.parseInt(prime_set[j]+""+prime_set[m]);
int t17= Integer.parseInt(prime_set[k]+""+prime_set[m]);
int t18= Integer.parseInt(prime_set[m]+""+prime_set[k]);
int t19= Integer.parseInt(prime_set[m]+""+prime_set[l]);
int t20= Integer.parseInt(prime_set[l]+""+prime_set[m]);
// System.out.println("i:"+prime_set[i]+",j:"+prime_set[j]+",k:"+prime_set[k]+",l:"+prime_set[l]+",m:"+prime_set[m]);
System.out.println("No:i:"+i+",j:"+j+",k:"+k+",l:"+l+",m:"+m);
if(!prime[t13]||!prime[t14]||!prime[t15]||!prime[t16]||!prime[t17]||!prime[t18]||!prime[t19]||!prime[t20]){
// int sum = prime_set[i]+prime_set[j]+prime_set[k]+prime_set[l]+prime_set[m];
// System.out.println("----------i:"+prime_set[i]+",j:"+prime_set[j]+",k:"+prime_set[k]+",l:"+prime_set[l]+",m:"+prime_set[m]+",sum:"+sum);
// System.out.println("--No:i:"+i+",j:"+j+",k:"+k+",l:"+l+",m:"+m);
continue;
}else{
int sum = prime_set[i]+prime_set[j]+prime_set[k]+prime_set[l]+prime_set[m];
System.out.println("----------i:"+prime_set[i]+",j:"+prime_set[j]+",k:"+prime_set[k]+",l:"+prime_set[l]+",m:"+prime_set[m]+",sum:"+sum);
}
}
}
}
}
}
System.out.println("i:"+i+",j:"+j+",k:"+k+",l:"+l+",m:"+m);
}
}
[/code]
打印出来的:
No:i:0,j:1,k:2,l:141,m:166
No:i:1,j:2,k:27,l:120,m:121
。
。
。
No:i:7,j:62,k:121,l:142,m:165
No:i:7,j:62,k:121,l:142,m:166
i:167,j:167,k:167,l:167,m:167
怎么i都不是按顺序的遍历啊~
崩溃了