public static long TriangularPentagonalHexagonal() { var h = 144; long hexagonal; do { hexagonal = TriPenHexNumbers.HexagonalNumber(h++); } while (!(TriPenHexNumbers.IsPentagonNumber(hexagonal) && TriPenHexNumbers.IsTriangleNumber(hexagonal))); return(hexagonal); }
public static long FirstTriangleNumberWithOverFiveHundredDivisors() { var pointReached = false; long number = -1; for (int i = 1; !pointReached; i += 2) { number = TriPenHexNumbers.TriangleNumber(i); if (HasMoreThan500Divisors(number)) { pointReached = true; } } return(number); }
public static long MinimisedPentagonalNumbersDifference() { for (int k = 2; true; k++) { var kPentagon = TriPenHexNumbers.PentagonNumber(k); for (int j = k - 1; j >= 1; j--) { var jPentagon = TriPenHexNumbers.PentagonNumber(j); var diff = kPentagon - jPentagon; if (TriPenHexNumbers.IsPentagonNumber(diff) && TriPenHexNumbers.IsPentagonNumber(kPentagon + jPentagon)) { return(diff); } } } }
public static int NumTriangleWords() { var triangleNumbers = new List <int> { 1 }; var numTriangleWords = 0; foreach (var word in _words) { var wordNumber = word.Select(w => _dictionary[w]).Sum(); if (TriPenHexNumbers.IsTriangleNumber(wordNumber)) { numTriangleWords++; } } return(numTriangleWords); }