import java.util.*; public class WeirdNumbers { public static void main(String[] args) { long[] time = {0,0}; int rounds = 5; int prerun = 3; for (int i=0;i<(prerun+rounds)*2;i++) { long start = System.nanoTime(); int round = i%2; if (round == 0) { numbersPlain(); } else { numbersFor(); } long end = System.nanoTime(); if (i >= 2*prerun) { time[round] += end-start; } } System.out.printf("Plain:\t\t%5.8fs\nFor Loop:\t%5.8fs\n", time[0]/1000000000./rounds, time[1]/1000000000./rounds); } static boolean backTrack(int a[], int k, int n) { if(n == 0) return true; if(k == a.length) return false; if(n >= a[k]) { n -= a[k]; if(backTrack(a,k+1,n)) return true; n += a[k]; } if(backTrack(a,k+1,n)) return true; return false; } static void numbersPlain() { List al=new ArrayList(); List tl=new ArrayList(); List rl=new ArrayList(); HashSet spn = new HashSet(); int l=2,s=0,c=0,a,n; outer: for(;;l+=2,s=1) { if(spn.contains(l)) continue; al.clear(); for(int i=2;i al=new ArrayList(); List tl=new ArrayList(); List rl=new ArrayList(); HashSet spn = new HashSet(); int l=2,s=0,c=0,a,n; outer: for(;;l+=2,s=1) { if(spn.contains(l)) continue; al.clear(); for(int i=2;i