private long collatzSteps(long num) {
		long result=0;
		cache2.clear();
		while(num!=1){
			if(cache.get(num)!=null){
				result = result+cache.get(num);
				break;
			}
			if(num<0){
				print(num, "< 0");
			}
			if(num%2==0){
				num=num/2;
			}else{
				num=num*3+1;
			}
			result++;
			cache2.put(num, result);
		}
		for(Long i:cache2.keySet()){
			if(!cache.containsKey(i)){
				cache.put(i, result-cache2.get(i));
			}
		}
		return result;
	}