Esempio n. 1
0
        private int OptimizationAttempt1(int numDigits)
        {
            if (numDigits == 1)
            {
                return(9);
            }

            var upperLimit = (int)Math.Pow(10, numDigits) - 1;
            var lowerLimit = upperLimit - (int)Math.Pow(10, numDigits - 1);

            var           range   = new EulerRange(lowerLimit, upperLimit);
            HashSet <int> numbers = new HashSet <int>();

            //Get every multiple
            foreach (var item in range)
            {
                range.Select(x => numbers.Add(item * x)).ToList();
            }

            foreach (var item in numbers.OrderByDescending(x => x))
            {
                if (NumberStringHelper.IsNumberPalindrome(item))
                {
                    return(item);
                }
            }
            return(-1);
        }