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 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 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); }