public static BigFraction AddFraction(BigFraction a, BigFraction b) { List <int> t1 = DigitsList.Product(a.Numerator, b.Denominator); List <int> t2 = DigitsList.Product(b.Numerator, a.Denominator); var num = DigitsList.Sum(t1, t2); var dem = DigitsList.Product(a.Denominator, b.Denominator); return(new BigFraction { Numerator = num, Denominator = dem }); }
public bool IsLychrelNumber(long number) { bool isPalindrome = false; int numberOfIteration = 0; List <int> digits = DigitsList.ConvertToDigitListe(number); while (!isPalindrome && numberOfIteration < 50) { digits = DigitsList.Sum(digits, DigitsList.ReverseCopy(digits)); isPalindrome = Palindrome.IsPalindrome(digits); numberOfIteration++; } return(!isPalindrome); }
public string GetSum(string[] stringArray) { List <int> sumNumbers = stringArray[0].ToCharArray().Reverse().Select(c => Convert.ToInt32(c - '0')).ToList(); //skip first, used in init above.. foreach (var s in stringArray.Skip(1)) { List <int> nextNumber = s.ToCharArray().Reverse().Select(c => Convert.ToInt32(c - '0')).ToList(); sumNumbers = DigitsList.Sum(nextNumber, sumNumbers); } //lag string ut fra int array , snu tallene StringBuilder builder = new StringBuilder(); sumNumbers.TakeLast(10).Reverse().ToList().ForEach(s => builder.Append(s.ToString())); return(builder.ToString()); }
public bool NumeratorHasMoreDigitsThanDenominator(int iterationNumber) { /* * 1 + 1/(2 + 1/2..) * 1+ 1/seriesum * * seriesum=t/n * seriesum=2 +1/seriesum = 2+1/(t/n)=2+n/t=(2*t+n)/t * */ List <int> teller = new List <int> { 2 }; List <int> nevner = new List <int> { 1 }; //seriesum=t/n = 2 while (iterationNumber > 1) { // (2*t+n)/t //2*t // List<int> a = DigitsList.Product(teller, 2); //2*t+n var tmp2 = DigitsList.Sum(DigitsList.Product(teller, 2), nevner); // /t nevner = teller; teller = tmp2; iterationNumber--; } //1 + 1 / seriesum // 1 +1/(t/n) = (n+t)/t var tmp = teller; teller = DigitsList.Sum(nevner, teller); nevner = tmp; //finn all siffer i teller og nevner return(teller.Count > nevner.Count); }
public long GetLastTenDigits(int topower) { List <int> digitlist = new List <int>(); for (int i = 1; i <= topower; i++) { List <int> liste = DigitsList.ConvertToDigitListe(i); for (int j = 2; j <= i; j++) { liste = DigitsList.Product(liste, MaxDigits, i); } digitlist = DigitsList.Sum(digitlist, liste); } return(DigitsList.ConvertToNumberLong(digitlist.Take(MaxDigits).ToList())); }
public long GetIndexOfFirstTerm(int numberOfdigits) { List <int> fn1 = new List <int>() { 1 }; List <int> fn2 = new List <int>() { 1 }; int IndexOfTerm = 2; while (fn2.Count < numberOfdigits) { var fnext = DigitsList.Sum(fn1, fn2); fn1 = fn2; fn2 = fnext; IndexOfTerm++; } return(IndexOfTerm); }