public int GetHighestNumberPrimesFromSubstitution(int subValue) {

        if(!_factorizer.IsKnownPrime(subValue)) return 0;
        List<Integer> values = GetListOfValues(subValue);
        List<Integer> primeList;
        if(values.size() == 1) return 1;
        int count = 0;
        for(int i = 0; values.size() > Integer.toBinaryString(i + 1).length(); i++)
        {
            primeList = new ArrayList<Integer>();
            int j = 0;

            while(j <= 9)
            {
                List<Integer> currentValues =  SetValues(values, i, j);
                int currentValue = GetIntFromList(currentValues);
                if(_factorizer.IsKnownPrime(currentValue)
                        && Integer.toString(currentValue).length() == Integer.toString(subValue).length())
                {
                    if(!primeList.contains(currentValue))
                        primeList.add(currentValue);
                }

                j++;
            }
            if(primeList.size() > count && primeList.contains(subValue))
                count = primeList.size();
            primeList.clear();
        }
        return count;
    }