private static void ShiftLeft(Element[] array)
        {
            var tempElement = new Element();
            var greatestCommonDivisor = GreatestCommonDivisor(N, K);
            for (int i = 0; i < greatestCommonDivisor; i++)
            {
                int currentIndex = i;
                tempElement = array[i];
                var nextIndex = currentIndex + K;
                if (nextIndex >= N)
                {
                    nextIndex -= N;
                }

                while (nextIndex != i)
                {
                    array[currentIndex] = array[nextIndex];
                    currentIndex = nextIndex;
                    nextIndex += K;
                    if (nextIndex >= N)
                    {
                        nextIndex -= N;
                    }
                }

                array[currentIndex] = tempElement;
            }
        }
 private static void InitializeArray(Element[] array)
 {
     for (int i = 0; i < array.Length; i++)
     {
         array[i].Data = i;
     }
 }
 static void PrintArray(Element[] array)
 {
     for (int i = 0; i < array.Length; i++)
     {
         Console.Write("{0} ", array[i].Data);
     }
     Console.WriteLine();
 }
 static void Main()
 {
     Element[] elements = new Element[N];
     InitializeArray(elements);
     PrintArray(elements);
     ShiftLeft(elements);
     PrintArray(elements);
 }