static void Main(string[] args) { for (int i = 1; i < 100; i++) { for (int j = 1; j < 100; j++) { //List<int> product = BigNumberFunctions.exponentList(BigNumberFunctions.getIntListFromString(i.ToString()), j); ArbitraryLargeUnsignedInt baseNum = new ArbitraryLargeUnsignedInt(i.ToString()); ArbitraryLargeUnsignedInt prod = baseNum; for (int k = 1; k < j; k++) { prod *= baseNum; } setLargest(prod.numList); } } Console.WriteLine(largestSum); Console.WriteLine(); Console.ReadLine(); }
static void Main(string[] args) { int powDigitCount = 0; for (int i = 1; i < 25; i++) { for (ArbitraryLargeUnsignedInt j = new ArbitraryLargeUnsignedInt("1"); true; j += 1) //for (ulong j = 4; true; j++) { // Console.WriteLine(j); ArbitraryLargeUnsignedInt num = new ArbitraryLargeUnsignedInt("1"); // ulong num = 1; for (int k = 0; k < i; k++) { num *= j; } if (num.ToString().Length > i) break; else if (num.ToString().Length == i) { powDigitCount++; Console.WriteLine(j + "^" + i + " = " + num.ToString() + " LEN => " + num.ToString().Length); } } } Console.WriteLine("Possible Answer = " + powDigitCount); Console.Read(); }
public static ArbitraryLargeUnsignedInt operator +(ArbitraryLargeUnsignedInt left, int right) { ArbitraryLargeUnsignedInt rightBig = new ArbitraryLargeUnsignedInt(right.ToString()); return left + rightBig; }
public static ArbitraryLargeUnsignedInt operator +(ArbitraryLargeUnsignedInt left, ArbitraryLargeUnsignedInt right) { ArbitraryLargeUnsignedInt returnArb = new ArbitraryLargeUnsignedInt(); int max = Math.Max(left.numList.Count, right.numList.Count); for(int i =0; i < max; i++) { if (i >= left.numList.Count) { left.numList.Add(0); } else if (i >= right.numList.Count) { right.numList.Add(0); } } int carryDigit = 0; for (int i = 0; i < left.numList.Count; i++) { int sum = left.numList[i] + right.numList[i] + carryDigit; returnArb.numList.Add(sum % 10); carryDigit = sum / 10; } if (carryDigit != 0) returnArb.numList.Add(carryDigit); return returnArb; }