static void Main(string[] args)
 {
     string matrixNumbers = FileReader.ReadFile("Nums.txt", System.Text.Encoding.UTF8);
     string[] nums = matrixNumbers.Replace("\r\n", "|").Split('|');
     LargeNumberModel result = new LargeNumberModel("0");
     foreach (string num in nums)
     {
         LargeNumberModel ln = new LargeNumberModel(num);
         result = result + ln;
     }
     Console.WriteLine(result.ToString().Substring(0,10));
     Debug.WriteLine(result.ToString().Substring(0, 10));
     Console.Read();
 }
 static LargeNumberModel Pow(LargeNumberModel num, int pow)
 {
     if (pow < 0)
         throw new ApplicationException("Pow can not be smaller than 0");
     if (pow == 0)
         return new LargeNumberModel("1");
     if (pow == 1)
         return num;
     LargeNumberModel result = new LargeNumberModel(num.ToString());
     int basenum = int.Parse(num.ToString());
     for (int i = 1; i < pow; i++)
     {
         result = result * basenum;
     }
     return result;
 }
 static bool CheckPalindromic(LargeNumberModel number)
 {
     string reverse = ReverseNumber(number).ToString();
     if (string.Equals(number.ToString(),reverse))
         return true;
     return false;
 }
 static bool CanGetPalindromicIn50Cycles(LargeNumberModel number)
 {
     LargeNumberModel temp = new LargeNumberModel(number.ToString());
     for (int i = 0; i < 50; i++)
     {
         LargeNumberModel reverse = ReverseNumber(temp);
         LargeNumberModel sum = temp + reverse;
         if (CheckPalindromic(sum))
             return true;
         temp = sum;
     }
     return false;
 }
 static void Main(string[] args)
 {
     LargeNumberModel num = new LargeNumberModel("2"); // 11930336
     for (int i = 1; i < 1000; i++ )
         num = num * 2;
     Console.WriteLine(num);
     string result = num.ToString();
     int sum = 0;
     for (int i = 0; i < result.Length; i++)
     {
         sum += int.Parse(result.Substring(i, 1));
     }
     Console.WriteLine(string.Format("sum:{0}",sum));
     Console.Read();
 }
 static string SignNum(LargeNumberModel num)
 {
     string numStr = num.ToString();
     return new string(numStr.OrderBy(x => x).ToArray());
 }