コード例 #1
0
        static public bool Check(long number)
        {
            int count = 10; //количесвто проверок -тогда вероятность что проверяемое число простое  = 1 - (0.5)^10

            bool flag = true;
            long a, p, x;

            p = number - 1;
            RandomGenerator.GenerateSeedFromTimestamp();
            do
            {
                a = RandomGenerator.GenerateNext(0, p) + 1;
                x = ModPow.Get(a, p, number);

                if (x != 1)
                {
                    flag = false; //если хотя бы для одного а, х != 1, то число не простое
                }
                count--;
            } while ((count == 0) && (!flag));

            return(flag);
        }
コード例 #2
0
 //Модульное возведение в степень
 private void button1_Click(object sender, EventArgs e)
 {
     tb_passive_MPResult.Text = (ModPow.Get(int.Parse(tb_MP_X.Text), int.Parse(tb_MP_Y.Text), int.Parse(tb_MP_N.Text))).ToString();
 }