static void Main(string[] args) { var primeGenerator = new CachedPrimeNumberGenerator(new SievePrimeNumberGenerator()); var primes = primeGenerator.GetPrimesBelowLongMaxValue(); long[] results = new long[11]; int index = 0; foreach (var prime in primes.SkipWhile(p => p <= 7)) { if (IsTruncatableLeft(prime, primeGenerator) && IsTruncatableRight(prime, primeGenerator)) { results[index++] = prime; Console.WriteLine("Found {0} ({1}/11)", prime, index); if (index == 11) { break; } } } Console.WriteLine(results.Sum()); Console.ReadKey(); }
static void Main(string[] args) { CachedPrimeNumberGenerator generator = new CachedPrimeNumberGenerator(new SievePrimeNumberGenerator()); int current = 9; while (true) { var primes = generator.GetPrimesBelowLongMaxValue().TakeWhile(p => p <= current).ToList(); if (!primes.Contains(current)) { if (!IsGoldbachComposit(primes, current)) { Console.WriteLine(current); Console.ReadKey(); break; } } current += 2; } }
public override void SetUp() { generator = new CachedPrimeNumberGenerator(new SievePrimeNumberGenerator()); }