AKS test for primes: Difference between revisions

Content added Content deleted
Line 448: Line 448:
}
}


bool checkPrime(unsigned long n)
bool isPrime(unsigned long n)
{
{
if (n > pasTriMax)
if (n > pasTriMax)
Line 477: Line 477:
}
}
if (n == 0)
switch (n)
cout << "(x-1)^0 = 1" << endl;
else if (n == 1)
cout << "(x-1)^1 = x-1" << endl;
else
{
{
pascalTriangle(n);
case 0:
cout << "(x-1)^" << n << " = ";
cout << "(x-1)^0 = 1" << endl;
cout << "x^" << n;
break;
bool bVz = true;
case 1:
int nDiv2 = n / 2;
cout << "(x-1)^1 = x-1" << endl;
break;
for (unsigned long j = n - 1; j > nDiv2; j--, bVz = !bVz)
default:
cout << vz[bVz] << pasTri[n - j] << "*x^" << j;
pascalTriangle(n);
for (unsigned long j = nDiv2; j > 1; j--, bVz = !bVz)
cout << vz[bVz] << pasTri[j] << "*x^" << j;
cout << "(x-1)^" << n << " = ";
cout << vz[bVz] << pasTri[1] << "*x";
cout << "x^" << n;
bVz = !bVz;
bool bVz = true;
cout << vz[bVz] << pasTri[0] << endl;
int nDiv2 = n / 2;
for (unsigned long j = n - 1; j > nDiv2; j--, bVz = !bVz)
cout << vz[bVz] << pasTri[n - j] << "*x^" << j;
for (unsigned long j = nDiv2; j > 1; j--, bVz = !bVz)
cout << vz[bVz] << pasTri[j] << "*x^" << j;
cout << vz[bVz] << pasTri[1] << "*x";
bVz = !bVz;
cout << vz[bVz] << pasTri[0] << endl;
break;
}
}
}
}
Line 503: Line 507:
expandPoly(n);
expandPoly(n);
for (unsigned long n = 2; n <= pasTriMax; n++)
for (unsigned long n = 2; n <= pasTriMax; n++)
if (checkPrime(n))
if (isPrime(n))
cout << setw(3) << n;
cout << setw(3) << n;
cout << endl;
cout << endl;