private static boolean is4Prime(int n){
		if (didThis[n] == true) return is4Prime[n];
		didThis[n] = true;
		Set<Integer> used = new HashSet<Integer>();
		int t = n;
		for(Integer p : primes){
			if (t%p==0){
				t/=p;
				used.add(p);
				if(used.size()==4) break;
			}
		}
		
		while(t!=1){
			boolean found = false;
			for(Integer pp : used){
				if (t%pp==0){
					t/=pp;
					found = true;
					break;
				}
			}
			if (found == false && t!=1){
				is4Prime[n]=false;
				return false;
			}
		}
		boolean answer = used.size()==4;
		is4Prime[n]=answer;
//		if (is4Prime[n]){ System.out.println(n+" is ");
//		for(Integer i : used) System.out.println(" "+i+" ");}
		return answer;
	}