public void CodedTriangleNumbers() { string content = ScriptTools.Cat(@"C:\euler\p042_words.txt"); var words = content.Replace("\"", "").Split(new char[] { ',' }); var numbers = words.Map <string, int>(word => word.Map <char, int>(c => c - 'A' + 1).Sum()); var triangles = Itertools.Range(1, 1000).Map <int, int>(i => i * (i + 1) / 2); var result = 0; foreach (var number in numbers) { if (triangles.Contains(number)) { result++; } } Console.WriteLine("result is {0}", result); }
public void TriangularPentagonalAndHexagonal() { var triangulars = Itertools.Range(1, (long)100000).Map <long, long>(n => n * (n + 1) / 2); var pentagonals = Itertools.Range(1, (long)100000).Map <long, long>(n => n * (3 * n - 1) / 2); var hexagonals = Itertools.Range(1, (long)100000).Map <long, long>(n => n * (2 * n - 1)); var zipped = triangulars .Concat(pentagonals) .Concat(hexagonals) .Group() .Filter(g => g.Length == 3); foreach (var item in zipped) { Console.WriteLine("{0}", item[0]); } }
public void PrimePowerTriples() { // 7072 // 369 // 85 var squres = Itertools .Range(2, 7072) .Filter(x => x.IsPrime()) .Map <int, int>(x => x * x); var cubes = Itertools .Range(2, 369) .Filter(x => x.IsPrime()) .Map <int, int>(x => x * x * x); var fourth = Itertools .Range(2, 85) .Filter(x => x.IsPrime()) .Map <int, int>(x => x * x * x * x); var numbers = new HashSet <int>(); foreach (var s in squres) { foreach (var c in cubes) { foreach (var f in fourth) { var p = s + c + f; if (p > 50000000) { continue; } if (!numbers.Contains(p)) { numbers.Add(p); } } } } Console.WriteLine("{0}", numbers.Count()); }