Esempio n. 1
0
 static void Main(string[] args)
 {
     List<int> starting = new List<int>();
     int maxCount = 60 - 1;
     for (int i = 1; i < 1000000; i++)
     {
         int next = i.Digits().Select(fact).Sum();
         int count = 1;
         HashSet<int> repeats = new HashSet<int>();
         while (next != i)
         {
             next = next.Digits().Select(fact).Sum();
             if (repeats.Contains(next))
             {
                 break;
             }
             repeats.Add(next);
             count++;
         }
         if(count >= maxCount)
         {
             starting.Add(i);
             maxCount = count;
         }
     }
     Console.WriteLine(starting.ToStringPretty() + "\n" + maxCount + "\n" + starting.Count);
     Console.ReadKey();
 }
Esempio n. 2
0
 static void Main(string[] args)
 {
     int maxcount = 0;
     var c = new List<int>();
     for (int i = 1; i < 100; i++)
     {
         Console.WriteLine(i);
         var chain = AmicableChain(i);
         if (chain.Count > maxcount)
         {
             maxcount = chain.Count;
             c = chain;
         }
     }
     Console.WriteLine(c.ToStringPretty());
     Console.ReadKey();
 }