public int GetSumCyclic4DigitsNumber3()
        {
            /*
             * The ordered set of three 4-digit numbers: 8128, 2882, 8281, has three interesting properties.
             *
             * The set is cyclic, in that the last two digits of each number is the first two digits of the next number (including the last number with the first).
             * Each polygonal type: triangle (P3,127=8128), square (P4,91=8281), and pentagonal (P5,44=2882),
             * is represented by a different number in the set.
             * This is the only set of 4-digit numbers with this property.
             *
             *
             */

            List <int> triangleValues   = E061CyclicalFigurateNumbers.Polygonal(E061CyclicalFigurateNumbers.TriangleFunc).ToList();
            List <int> squareValues     = E061CyclicalFigurateNumbers.Polygonal(E061CyclicalFigurateNumbers.SquareFunc).ToList();
            List <int> pentagonalValues = E061CyclicalFigurateNumbers.Polygonal(E061CyclicalFigurateNumbers.PentagonalFunc).ToList();


            List <List <int> > candiates = new List <List <int> >()
            {
                triangleValues,
                squareValues,
                pentagonalValues
            };


            List <int> result = null;

            for (int i = 0; i < candiates.Count; i++)
            {
                var current        = candiates[i];
                var nextCandidates = candiates.ToList();
                nextCandidates.Remove(current);

                for (int p = 0; p < current.Count; p++)
                {
                    var        polynumber = current[p];
                    List <int> founded    = new List <int>()
                    {
                        polynumber
                    };
                    result = Recursive(nextCandidates, founded, polynumber);
                    if (result != null)
                    {
                        return(result.Sum());
                    }
                }
            }


            return(0);
        }
        public int GetSumCyclic4DigitsNumber()
        {
            List <List <int> > candiates = new List <List <int> >()
            {
                E061CyclicalFigurateNumbers.Polygonal(E061CyclicalFigurateNumbers.TriangleFunc).ToList(),
                E061CyclicalFigurateNumbers.Polygonal(E061CyclicalFigurateNumbers.SquareFunc).ToList(),
                E061CyclicalFigurateNumbers.Polygonal(E061CyclicalFigurateNumbers.PentagonalFunc).ToList(),
                E061CyclicalFigurateNumbers.Polygonal(E061CyclicalFigurateNumbers.HexagonalFunc).ToList(),
                E061CyclicalFigurateNumbers.Polygonal(E061CyclicalFigurateNumbers.HeptagonalFunc).ToList(),
                E061CyclicalFigurateNumbers.Polygonal(E061CyclicalFigurateNumbers.OctagonalFunc).ToList()
            };



            for (int i = 0; i < candiates.Count; i++)
            {
                var current        = candiates[i];
                var nextCandidates = candiates.ToList();
                nextCandidates.Remove(current);

                for (int p = 0; p < current.Count; p++)
                {
                    var        polynumber = current[p];
                    List <int> founded    = new List <int>()
                    {
                        polynumber
                    };
                    var result = Recursive(nextCandidates, founded, polynumber);
                    if (result != null)
                    {
                        return(result.Sum());
                    }
                }
            }


            throw new Exception("Not found solution");
        }