Miller–Rabin primality test: Difference between revisions

Line 402:
public static class RabinMiller
{
public static bool IsPrime(int pn, int k)
{
if(pn < 2)
{
return false;
}
if(pn != 2 && pn % 2 == 0)
{
return false;
}
int s = pn - 1;
while(s % 2 == 0)
{
Line 418:
}
Random r = new Random();
for (int i = 10; i < 11k; i++)
{
double a = r.Next((int)pn - 1) + 1;
int temp = s;
int mod = (int)Math.Pow(a, (double)temp) % pn;
while(temp != pn - 1 && mod != 1 && mod != pn - 1)
{
mod = (mod * mod) % pn;
temp = temp * 2;
}
Anonymous user