Exemplo n.º 1
0
        public static int SumDoubleBasePalindromesUnderOneMillion()
        {
            var sum = 0;

            for (int i = 0; i < 1_000_000; i++)
            {
                if (Palindrome.IsPalindrome(i) &&
                    new BinaryNumber(i).IsPalindrome())
                {
                    sum += i;
                }
            }

            return(sum);
        }
Exemplo n.º 2
0
        public static int LargestXDigitPalindrome(int numberDigits)
        {
            var minNum = 1;

            while (--numberDigits > 0)
            {
                minNum *= 10;
            }

            var maxNum            = minNum * 10;
            var largestPalindrome = 0;

            for (int i = maxNum - 1; i >= minNum; i--)
            {
                if (i * (i - 1) <= largestPalindrome)
                {
                    break;
                }

                for (int j = i - 1; j >= minNum; j--)
                {
                    var mult = i * j;

                    if (mult <= largestPalindrome)
                    {
                        break;
                    }

                    if (mult > largestPalindrome && Palindrome.IsPalindrome(mult))
                    {
                        largestPalindrome = mult;
                    }
                }
            }

            return(largestPalindrome);
        }