private int shaveOffWholeNumbers(ref Breuk br)
        {
            int rest = (int)br.Value;

            br.Teller.Term          = (br.Teller.Term * br.Teller.Factor) - rest * br.Noemer.Factor;
            br.Teller.Wortel.Factor = br.Teller.Factor;
            br.Teller.Factor        = 1;

            return(rest);
        }
        private void moveRootToTeller(ref Breuk br)
        {
            br.Teller.Wortel = br.Noemer.Wortel;
            br.Teller.Term   = br.Noemer.Term * -1;

            br.Noemer.Factor            = br.Noemer.Wortel.BaseOfRoot - (br.Noemer.Term * br.Noemer.Term);
            br.Noemer.Wortel.BaseOfRoot = 0;
            br.Noemer.Term = 0;

            br.Simplify();
        }
        public void Generate(int wortel)
        {
            checkWaarden.Clear();
            resultaatWaarden.Clear();

            this.wortel     = wortel;
            tussenResultaat = initBreukOpWortelVan(wortel);

            eersteResultaatWaarde = shaveOffWholeNumbers(ref tussenResultaat);
            checkWaarden.Add(tussenResultaat.Value);
            tussenResultaat.TakeReciprocal();
            moveRootToTeller(ref tussenResultaat);

            bool stop = false;

            while (!stop)
            {
                stop = update();
            }

            Period = resultaatWaarden.Count;

            Coefficients    = new int[resultaatWaarden.Count + 1];
            Coefficients[0] = eersteResultaatWaarde;
            for (int i = 1; i < Coefficients.Length; i++)
            {
                Coefficients[i] = resultaatWaarden[i - 1];
            }

            ShortNotation = "[" + eersteResultaatWaarde + "(";
            for (int i = 0; i < resultaatWaarden.Count - 1; i++)
            {
                ShortNotation += resultaatWaarden[i] + ", ";
            }
            ShortNotation += resultaatWaarden[resultaatWaarden.Count - 1] + ")]";
            LongNotation   = "sqrt(" + this.wortel + ") = " + this.ShortNotation + "  => Period = " + this.Period;
        }