public BigInteger Solve(BigInteger?input = null) { int numberOfDivisors = 0; int i = 2, triangleNumber = 1; while (numberOfDivisors < 500) { numberOfDivisors = 0; triangleNumber += i; int testNumber = triangleNumber; Dictionary <int, int> divisors = DivisorsHelper.CalculatePrimeDivisors(testNumber, PrimeHelper.FindPrimesUnderLimit(200000000)); numberOfDivisors = divisors.Values.ElementAt(0) + 1; for (int l = 1; l < divisors.Count; l++) { numberOfDivisors *= divisors.Values.ElementAt(l) + 1; } i++; } return(triangleNumber); }
public async Task <Response> CalcDivisors(int Number) { return(await Task.FromResult(new Response(new { Divisors = string.Join(", ", DivisorsHelper.GetDivisors(Number)), Primes = string.Join(", ", DivisorsHelper.GetPrimeNumers(DivisorsHelper.GetDivisors(Number))) }))); }
public BigInteger Solve(BigInteger?input = null) { var primes = PrimeHelper.FindPrimesUnderLimit(28124); List <int> abundantNumbers = new List <int>(); for (int i = 2; i < 28124; i++) { if (DivisorsHelper.SumOfProperDivisors(i, primes) > i) { abundantNumbers.Add(i); } } BigInteger result = 0; bool[] canBeSummed = new bool[28124]; for (int i = 0; i < abundantNumbers.Count; i++) { for (int j = 0; j < abundantNumbers.Count; j++) { if (abundantNumbers[i] + abundantNumbers[j] >= 28124) { break; } canBeSummed[abundantNumbers[i] + abundantNumbers[j]] = true; } } for (int i = 1; i < 28124; i++) { if (!canBeSummed[i]) { result += i; } } return(result); }
public BigInteger Solve(BigInteger?input = null) { BigInteger result = 0; bool[] primesUnderLimit = PrimeHelper.FindPrimesUnderLimit(10001); for (int i = 2; i < 10000; i++) { if (primesUnderLimit[i]) { continue; } BigInteger sumOfDivisors = DivisorsHelper.SumOfDivisors(i, primesUnderLimit) - i; if (sumOfDivisors < 10000 && sumOfDivisors != i && DivisorsHelper.SumOfDivisors((int)sumOfDivisors, primesUnderLimit) - sumOfDivisors == i) { result += i; } } return(result); }
public void CalcPrimeTestExpected() { CollectionAssert.AreEqual(ExpectedPrime, DivisorsHelper.GetPrimeNumers(DivisorsHelper.GetDivisors(45))); }
public void CalcPrimeTestIsNotNull() { Assert.IsNotNull(DivisorsHelper.GetPrimeNumers(DivisorsHelper.GetDivisors(45))); }
public void CalcDivisorsTestIsNotNull() { Assert.IsNotNull(DivisorsHelper.GetDivisors(45)); }
public void CalcDivisorsTestExpected() { CollectionAssert.AreEqual(Expected, DivisorsHelper.GetDivisors(45)); }