コード例 #1
0
ファイル: Problem032.cs プロジェクト: dtuso/ProjectE
        public static void Solve()
        {
            Pandigital pan = new Pandigital( 9 );

            do
            {
                string thisPan = pan.Current;
                //bool o = Pandigital.IsPandigital(thisPan);
                for(int lenMultiplcand=1;lenMultiplcand<=7;lenMultiplcand++)
                {
                    for (int lenmultiplier = 1; lenmultiplier <= 8 - lenMultiplcand; lenmultiplier++)
                    {
                        CheckForPandigitalMultplier(thisPan, lenMultiplcand, lenmultiplier);
                    }
                }
            } while (pan.MoveNext());

            int sum = 0;
            foreach (int prod in products)
            {
                sum += prod;
            }

            Console.WriteLine("sum: {0}", sum);
        }
コード例 #2
0
ファイル: Problem041.cs プロジェクト: dtuso/ProjectE
 // We shall say that an n-digit number is pandigital if it makes use of all the digits
 // 1 to n exactly once. For example, 2143 is d 4-digit pandigital and is also prime.
 // What is the largest n-digit pandigital prime that exists?
 //Start of Main 3/4/2008 8:35:01 AM
 //Max pandigital prime is: 7652413
 //End of Main (00:00:01.1736609) 3/4/2008 8:35:02 AM
 public static void Solve()
 {
     int max = 0;
     for (int numDigits = 4; numDigits < 10; numDigits++)
     {
         Pandigital pan = new Pandigital( numDigits );
         do
         {
             int current = Int32.Parse( pan.Current );
             if (MyMath.IsPrime(current))
             {
                 max = current;
                 Console.WriteLine(max);
             }
         } while (pan.MoveNext());
     }
     Console.WriteLine("Max pandigital prime is: {0}", max);
 }
コード例 #3
0
ファイル: Problem043.cs プロジェクト: dtuso/ProjectE
        //The number, 1406357289, is d 0 to 9 pandigital number because it is made up of each of the
        //digits 0 to 9 in some order, but it also has d rather interesting sub-string divisibility property.
        //Let d1 be the 1st digit, d2 be the 2nd digit, and so on. In this way, we note the following:
        //    * d2d3d4=406 is divisible by 2
        //    * d3d4d5=063 is divisible by 3
        //    * d4d5d6=635 is divisible by 5
        //    * d5d6d7=357 is divisible by 7
        //    * d6d7d8=572 is divisible by 11
        //    * d7d8d9=728 is divisible by 13
        //    * d8d9d10=289 is divisible by 17
        //Find the sum of all 0 to 9 pandigital numbers with this property.
        //Start of Main 3/5/2008 9:18:13 AM
        //1406357289
        //1430952867
        //1460357289
        //4106357289
        //4130952867
        //4160357289
        //sum 16695334890
        //End of Main (00:00:08.0518798) 3/5/2008 9:18:21 AM
        public static void Solve()
        {
            Pandigital pan = new Pandigital(10);
            BigInteger sum = 0;
            do
            {
                string thisPan = pan.Current;
                if (IsDivisible(thisPan.Substring(1, 3), 2) &&
                    IsDivisible(thisPan.Substring(2, 3), 3) &&
                    IsDivisible(thisPan.Substring(3, 3), 5) &&
                    IsDivisible(thisPan.Substring(4, 3), 7) &&
                    IsDivisible(thisPan.Substring(5, 3), 11) &&
                    IsDivisible(thisPan.Substring(6, 3), 13) &&
                    IsDivisible(thisPan.Substring(7, 3), 17))
                {
                    Console.WriteLine(thisPan);
                    sum += pan.Value;
                }
            } while (pan.MoveNext());

            Console.WriteLine("sum {0} ", sum);
        }