コード例 #1
0
ファイル: Problem50.cs プロジェクト: BenKel/ProjectEuler
        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);
        }
コード例 #2
0
ファイル: Problem41.cs プロジェクト: BenKel/ProjectEuler
        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);
        }