/// <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); //не нашли }
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; }