private void buttonHitungCRT_Click(object sender, EventArgs e)
        {
            if (dataGridViewCRT.RowCount > 0)
            {
                long a   = Convert.ToInt32(dataGridViewCRT["number", 0].Value);
                long b   = Convert.ToInt32(dataGridViewCRT["divisor", 0].Value);
                long lcm = b;
                for (int i = 1; i < dataGridViewCRT.RowCount; i++)
                {
                    DataGridViewRow row = dataGridViewCRT.Rows[i];
                    long            num = Convert.ToInt64(row.Cells["number"].Value);
                    long            div = Convert.ToInt64(row.Cells["divisor"].Value);
                    lcm = Kripto.LCM(lcm, div);
                    long x   = num - a;
                    long inv = Kripto.InversModulo(b, div);
                    x *= inv;
                    x %= div;
                    a += b * x;
                    b *= div;
                }
                if (a < 0)
                {
                    a += lcm;
                }
                textBox1.Text = "Hasil = " + a;

                /*
                 * int n = dataGridViewCRT.RowCount;
                 * long[] arrNum = new long[n];
                 * long[] arrDiv = new long[n];
                 * for (int i = 0; i < n; i++)
                 * {
                 *  arrNum[i] = Convert.ToInt32(dataGridViewCRT["number", i].Value);
                 *  arrDiv[i] = Convert.ToInt32(dataGridViewCRT["divisor", i].Value);
                 * }
                 * textBox1.Text += " " + Kripto.ChineseRemainderTheorem(arrNum, arrDiv);
                 * //*/
            }
            else
            {
                textBox1.Clear();
            }
        }