1
—Team GCC
2
1
2
4
5
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
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
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 𝑛 )
ALL prime numbers are of form 6𝑘 ± 1
FACT
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
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
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 𝑖 ≠ 𝑛
13
3
14
15
What is GCD of 54 and 24?
Divisor of 54: 1, 2, 3, 6, 9, 18, 27, 54
Divisor of 24: 1, 2, 3, 4, 6, 8, 12, 24
Common divisor are: 1, 2, 3, 6
GCD (54, 24) = 6
16
Homework :D
17
https://en.wikipedia.org/wiki/Euclidean_algorithm
[video content removed]
“
18
—pGxplorer
Keep practicing,
It’s a sport worth playing!
19
THANK YOU

Number theory - Prime Numbers & GCD Algorithms

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
    6 bool isPrime (intn) { 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 (intn) { 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 (intn) { for (int i=2; i*i<n; i++) if (n%i==0) return false; return true; } ( Simply traverse from 2 to 𝑛 )
  • 9.
    ALL prime numbersare of form 6𝑘 ± 1 FACT
  • 10.
    10 bool isPrime (intn) { 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 (intn) { 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 𝑖 ≠ 𝑛
  • 13.
  • 14.
  • 15.
    15 What is GCDof 54 and 24? Divisor of 54: 1, 2, 3, 6, 9, 18, 27, 54 Divisor of 24: 1, 2, 3, 4, 6, 8, 12, 24 Common divisor are: 1, 2, 3, 6 GCD (54, 24) = 6
  • 16.
  • 17.
  • 18.
  • 19.