Advertisement
martixy

Euler P32

Feb 13th, 2012
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.47 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace Euler_P32
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             string inputSet = "123456789";
  13.             RecursiveCombinatorics perms = new RecursiveCombinatorics(inputSet, RecursiveCombinatorics.Mode.Permutation);
  14.  
  15.             RecursiveCombinatorics combos = new RecursiveCombinatorics(inputSet.Substring(0, inputSet.Length-1), RecursiveCombinatorics.Mode.Combination, 2);
  16.             Console.WriteLine(perms.Count);
  17.            
  18.             HashSet<int> productList = new HashSet<int>();
  19.  
  20.             int sum = 0;
  21.             for (int i = 0; i < combos.Count; i++)
  22.             {
  23.                 if (combos[i][0] != combos[i][1])
  24.                 {
  25.                     for (int j = 0; j < perms.Count; j++)
  26.                     {
  27.                         StringBuilder temp = new StringBuilder(inputSet.Length);
  28.                         for (int k = 0; k < perms[i].Length; k++)
  29.                         {
  30.                             temp.Append(perms[j][k]);
  31.                         }
  32.                         int multiplicand = int.Parse(temp.ToString().Substring(0, (int)combos[i][0][0] - 48));
  33.                         //Console.WriteLine(int.Parse(temp.ToString().Substring(0, (int)varis[i][0][0] - 48)));
  34.                         int multiplier = int.Parse(temp.ToString().Substring((int)combos[i][0][0] - 48, (int)combos[i][1][0] - (int)combos[i][0][0]));
  35.                         //Console.WriteLine(int.Parse(temp.ToString().Substring((int)varis[i][0][0] - 48, (int)varis[i][1][0] - (int)varis[i][0][0])));
  36.                         int product = int.Parse(temp.ToString().Substring((int)combos[i][1][0] - 48));
  37.                         //Console.WriteLine(int.Parse(temp.ToString().Substring((int)varis[i][1][0] - 48)));
  38.  
  39.  
  40.                         if (multiplicand * multiplier == product)
  41.                         {
  42.                             if (!productList.Contains(product))
  43.                             {
  44.                                 productList.Add(product);
  45.                                 sum += product;
  46.                             }
  47.                             Console.WriteLine(temp.ToString());
  48.                             Console.WriteLine(multiplicand + " x " + multiplier + " = " + product);
  49.                         }
  50.                     }
  51.                 }
  52.             }
  53.             Console.WriteLine(sum);
  54.         }
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement