Algorithms for Primality test & GCD number - naive & efficient algorithms explained. The slides were presented by me during one of the programming sessions conducted by codechef campus chapter,
6. 6
bool isPrime (int n)
{
for (int i=2; i<n; i++)
if (n%i==0)
return false;
return true;
}
( Simply traverse from 2 to 𝑛 − 1 )
7. 7
bool isPrime (int n)
{
if (n<=1) return false;
if (n==2) return true;
if (n%2==0) return false;
for (int i=3; i<n; i+=2)
if (n%i==0)
return false;
return true;
}
number not
divisible by 2 is
not divisible by
any even number
8. 8
bool isPrime (int n)
{
for (int i=2; i*i<n; i++)
if (n%i==0)
return false;
return true;
}
( Simply traverse from 2 to 𝑛 )
10. 10
bool isPrime (int n)
{
if (i==2) return true;
if (i==3) return true;
for (int i=6; i*i<n; i+=6)
if (n%(i-1)==0)
return false;
else if (n%(i+1)==0)
return false;
return true;
}
11. 11
Basic concept - we pick one prime number and eliminate all the
multiples of that prime number
1. Create an array of 𝑛 + 1 elements (0,1,…,n)
2. Initialise the array with 1 (consider all as prime)
3. Mark 0 & 1 as 0 (!prime)
4. Iterate array till 𝒊 = 𝟏 (prime is found)
5. Mark all consecutive multiple of p as 0 (!prime)
6. Repeat step 4 & 5 till 𝑖 ≠ 𝑛
12. 12
void generatePrime (int n)
{
int isPrime[n+1];
for (int i=0; i<n; i++)
isPrime[i] = 1;
isPrime[0] = isPrime[1] = 0;
for (int i=2; i<n; i++)
if (isPrime[i]==1)
for (int j=i+i; j<n; j+=i)
isPrime[i] = 0;
}
Create an array of 𝑛 + 1 elements (0,1,…,n)Initialise the array with 1 (consider all as prime)Mark 0 & 1 as 0 (!prime)Iterate array till 𝑖 = 1 (prime is found)Mark all consecutive multiple of p as 0 (!prime)Repeat step 4 & 5 till 𝑖 ≠ 𝑛