public override string GetAnswer() { // The sum of the primes up to 3943 = 1,001,604. No need to go higher. var primes = PrimeUtilities.GeneratePrimesUpToN(3943); // 547 primes under 3943. for (int length = 547; length > 0; --length) { for (int offset = 0; offset <= primes.Count - length; ++offset) { int sum = 0; for (int i = 0; i < length; ++i) { sum += primes[offset + i]; } if (_primeService.IsPrime(sum)) { return(sum.ToString()); } } } return(null); }
public override string GetAnswer() { // Eight and nine digit numbers that are pandigital will always be divisible by 3, so we will look at 7 digit primes. const int limit = 7654321; List <int> primes = PrimeUtilities.GeneratePrimesUpToN(limit); for (int i = primes.Count - 1; i >= 0; --i) { if (IsPandigital(primes[i].ToString())) { return(primes[i].ToString()); } } return(null); }