public long GetNext(long next) { while (true) { var nextTriangleNumber = TriangleNumber.GetNumber(next); if (Pentagonnumber.GetN(nextTriangleNumber) > 0 && HexagonalNumber.GetN(nextTriangleNumber) > 0) { return(nextTriangleNumber); } next++; } }
private long GetCurrentMinimumD(long n, Dictionary <long, long> pentagonnumberdictionary) { long nvalue = Pentagonnumber.GetNumber(n); for (long np = n - 1; np >= 1; np--) { long npvalue = Pentagonnumber.GetNumber(np); long sum = nvalue + npvalue; long diff = nvalue - npvalue; if (pentagonnumberdictionary.ContainsKey(sum) && pentagonnumberdictionary.ContainsKey(diff)) { return(nvalue - npvalue); } } return(long.MaxValue); }
public long GetMinimumD() { long MinimumD = long.MaxValue; var pentagonnumberdictionary = Pentagonnumber.Iterastor().Take(100000).ToDictionary(e => e);; long n = 1; while (true) { //TODO...ikke sikker om dette er minium...hvordan kan det besvisses..? var currentMinimumD = GetCurrentMinimumD(n, pentagonnumberdictionary); if (currentMinimumD < MinimumD) { return(currentMinimumD); } n++; } return(MinimumD); }
public void TestTriangleGetN(long n, int tn) { Assert.Equal(tn, Pentagonnumber.GetN(n)); }
public void TestTriangleNumber(int n, int tn) { var tabell = Pentagonnumber.Iterastor(100).ToArray(); Assert.Equal(tn, tabell[n - 1]); }