public IEnumerable <int> Problem13() { var list = new List <List <int> >(); var fileLines = File.ReadAllLines("C:\\Phil\\PE\\ProjectEuler\\ProjectEuler\\Problems\\BigNumbers.txt").ToList(); var nums = fileLines.Select(BigNumberHelper.GetAsListRepresentingNumber).ToList(); return(BigNumberHelper.AddListRepresentingNumbers(nums).ToArray().Reverse().Take(10)); }
public void Problem97() { var q = Enumerable.Repeat(2, 7830457); var rt = q.Aggregate(Enumerable.Repeat <int>(1, 1).ToList(), (x, y) => BigNumberHelper.MultiplyListRepresentingNumber(x, y, 10)); //MultiplyListRepresentingNumberVoid(rt, 28433); var d = BigNumberHelper.GetAsListRepresentingNumber(28433); var s = BigNumberHelper.MultiplyListRepresentingNumber(rt, d); }
public int DigitSumEqual(int upperLimit, Func <int, int> digitMap) { var digitMapLookup = new KeyValueMap <int, int>(digitMap); Func <IEnumerable <int>, int> digitSum = xs => xs.Select(digitMapLookup.GetValue).Sum(); return(Enumerable.Range(10, upperLimit) .Select(x => new { Num = x, ListNum = BigNumberHelper.GetAsListRepresentingNumber(x) }) .Where(x => x.Num == digitSum(x.ListNum)) .Sum(x => x.Num)); }
/*public void ConcealedSquare() * { * var numbers = Enumerable.Repeat(Enumerable.Range(0, 10), 10); * IEnumerable<IEnumerable<int>> seed = new IEnumerable<int>[] { Enumerable.Empty<int>() }; * var test = Enumerable.Range(1, 10).Reverse().Select(w=> SpecialMod(w,10)); * var hmm = test.Aggregate(Enumerable.Empty<int>(), (d, f) => d.Concat(ToEnumerable(0).Concat(ToEnumerable(f)))).Skip(1); * Func<int, bool>[] bry = hmm.Select((x, i) => SpecialMod(i, 2) == 0 ? (Func<int, bool>)(s => s == x) : h => true).ToArray(); * int index = 0; * var t = numbers.Aggregate(seed, (x, i) => Agg(x, i, () => index++, bry[index])); * t.ToList(); * } * * private IEnumerable<IEnumerable<int>> Agg(IEnumerable<IEnumerable<int>> x, IEnumerable<int> i, Action adder, Func<int, bool> func) * { * var toReturn = x.SelectMany(y => i, (a, b) => a.Concat(ToEnumerable(b))).Where(q => func(SpecialMod(DiagSum2(q), 10))).ToList(); * adder(); * return toReturn; * }*/ public void Problem206() { var numbers = Enumerable.Repeat(Enumerable.Range(0, 10), 10); IEnumerable <IEnumerable <int> > seed = new IEnumerable <int>[] { Enumerable.Empty <int>() }; var seed2 = seed.Select(h => Tuple.Create(h, 0)); var test = Enumerable.Range(1, 10).Reverse().Select(w => SpecialMod(w, 10)); var hmm = test.Aggregate(Enumerable.Empty <int>(), (d, f) => d.Concat(ToEnumerable(0).Concat(ToEnumerable(f)))).Skip(1); Func <int, bool>[] bry = hmm.Select((x, i) => SpecialMod(i, 2) == 0 ? (Func <int, bool>)(s => s == x) : h => true).ToArray(); int index = 0; var t = numbers.Aggregate(seed2, (x, i) => Agg(x, i, () => index++, bry[index])).ToList(); /*while (index < 19) * { * var temp = t.Select(j => Tuple.Create(j.Item1, SpecialMod(DiagSum(j.Item1.Skip(index - 9)) + j.Item2, 10))); * t = temp.Where(z => bry[index](z.Item2)).Select(k => Tuple.Create(k.Item1, k.Item2 / 10)).ToList(); * index++; * }*/ var multi = t.Select(q => Tuple.Create(BigNumberHelper.MultiplyListRepresentingNumber(q.Item1.ToList(), q.Item1.ToList()), q.Item1)).ToList(); //multi.Where(d=> d.All( multi = multi.Where(df => df.Item1.Count == 19 || (df.Item1.Count == 20 && df.Item1[19] == 0)).Select(sw => Tuple.Create(sw.Item1.Take(19).ToList(), sw.Item2)).ToList(); int counter = 0; int maxCounter = 0; foreach (var numero in multi) { counter = 0; foreach (var numeroElement in numero.Item1) { if (counter > maxCounter) { maxCounter = counter; } if (!bry[counter](numeroElement)) { break; } counter++; } if (counter == 19) { } } Console.WriteLine(t.Count); }
public int Problem16() { List <int> listRepresentingNumber = new List <int>(); listRepresentingNumber.Add(1); for (int index = 1; index <= 1000; index++) { BigNumberHelper.MultiplyListRepresentingNumberVoid(listRepresentingNumber, 2); } int answer = listRepresentingNumber.Sum(); return(answer); }
public int Problem25() { List <int> result = new List <int>(); List <int> prevprev = BigNumberHelper.GetAsListRepresentingNumber(1); List <int> prev = BigNumberHelper.GetAsListRepresentingNumber(1); int n = 2; while (result.Count() < 1000) { result = BigNumberHelper.AddListRepresentingNumbers(prevprev, prev); prevprev = prev; prev = result; n++; } return(n); }
public int Problem20() { int i = 100; List <int> num = BigNumberHelper.GetAsListRepresentingNumber(i); while (i > 1) { List <int> num2 = BigNumberHelper.GetAsListRepresentingNumber(i - 1); num = BigNumberHelper.MultiplyListRepresentingNumber(num, num2); i--; } int answer = num.Sum(); return(answer); }
public void Problem43() { var list = this.GetPerms(0, 10).Select(x => new { Orig = x, Split = this.Split(x, 3) }); var hmm = list. Select(x => new { x.Orig, Split = x.Split.Item2. Aggregate(x.Split.Item1.ToEnumerable(), (y, i) => y.Concat(y.Last().Skip(1).Concat(i))).Skip(1) } ); var ooo = hmm.Select(x => new { x.Orig, Nums = x.Split.Select(MathsHelper.ConvertToDecimal) }); var primes = MathsHelper.GetPrimesUpTo(17).ToList(); var interesting = ooo.Where(x => x.Nums.Zip(primes, (a, b) => a % b).All(y => y == 0)).ToList(); var thingy = interesting.Select(x => x.Orig.Reverse().ToList()).ToList(); var hello = BigNumberHelper.AddListRepresentingNumbers(thingy); }