Example #1
0
        /// <summary>
        /// Функция нахождения простых чисел на отрезке
        /// </summary>
        /// <param name="a">Начало интервала</param>
        /// <param name="b">Конец интервала</param>
        /// <returns>Простое число</returns>
        public static BigInteger GeneratePrime(BigInteger a, BigInteger b)
        {
            int        i    = 0;
            BigInteger last = new BigInteger("1");

            while (i < 10000)
            {
                BigInteger temp = BigInteger.Generate(a, b);
                if (BigInteger.IsPrimeMillerRabin(temp, 100))
                {
                    return(temp);
                }
                else
                {
                    last = temp;
                    i++;
                }
            }
            return(null); //не нашли
        }
Example #2
0
        private void buttonGen_Click(object sender, EventArgs e)
        {
            BigInteger p = BigInteger.Generate(new BigInteger("2000"));

            while (!BigInteger.IsPrimeMillerRabin(p, 100))
            {
                p = BigInteger.Generate(new BigInteger("2000"));
            }

            BigInteger q = BigInteger.Generate(new BigInteger("2000"));

            while (!BigInteger.IsPrimeMillerRabin(q, 100))
            {
                q = BigInteger.Generate(new BigInteger("2000"));
            }

            textBoxP.Text       = p.ToString();
            textBoxQ.Text       = q.ToString();
            textBox.ReadOnly    = false;
            buttonShifr.Enabled = true;
        }