Beispiel #1
0
        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();
        }
Beispiel #2
0
        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());
 }