Beispiel #1
0
        public static HashSet <long> Generate(int nDigit)
        {
            var numbers      = Enumerable.Range(1, nDigit);
            var numberString = string.Empty;

            foreach (var number in numbers)
            {
                numberString += number;
            }
            return(Permutations.Generate(long.Parse(numberString)));
        }
Beispiel #2
0
        public static HashSet <long> GenerateZeroToN(int nDigit)
        {
            var numbers = Enumerable.Range(1, nDigit).ToList();

            //append 0 at end so cast to long doesn't chop it off
            numbers.Add(0);

            var numberString = string.Empty;

            foreach (var number in numbers)
            {
                numberString += number;
            }
            var pandigitals = Permutations.Generate(long.Parse(numberString));

            //remove any permutations that begin with 0, gets removed in the cast
            //and therefore isn't a 0 - n pandigital.
            pandigitals.RemoveWhere(p => p.ToString().Length != nDigit + 1);
            return(pandigitals);
        }
Beispiel #3
0
        public override long Solve()
        {
            for (int number = 1490; number < 9999; number++)
            {
                var perms     = Permutations.Generate(number).Where(p => p.ToString().Length == 4);
                var permsList = new List <long>();

                perms.ToList().ForEach(p => { if (Primes.IsPrime(p))
                                              {
                                                  permsList.Add(p);
                                              }
                                       });
                if (permsList.Count >= 4)
                {
                    var sequence = FindSequence(permsList);
                    if (sequence.Count > 0 && !sequence.Contains(1487))
                    {
                        return(long.Parse(sequence[0].ToString() + sequence[1].ToString() + sequence[2].ToString()));
                    }
                }
            }
            throw new Exception("Cannot find sequence....you messed it up");
        }