75 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			75 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: Greatest Common Divisor Euclidean | ||
|  | --- | ||
|  | ## Greatest Common Divisor Euclidean
 | ||
|  | 
 | ||
|  | For this topic you must know about Greatest Common Divisor (GCD) and the MOD operation first. | ||
|  | 
 | ||
|  | #### Greatest Common Divisor (GCD)
 | ||
|  | The GCD of two or more integers is the largest integer that divides each of the integers such that their remainder is zero. | ||
|  | 
 | ||
|  | Example-   | ||
|  | GCD of 20, 30 = 10 *(10 is the largest number which divides 20 and 30 with remainder as 0)*   | ||
|  | GCD of 42, 120, 285 = 3 *(3 is the largest number which divides 42, 120 and 285 with remainder as 0)*   | ||
|  | 
 | ||
|  | #### "mod" Operation
 | ||
|  | The mod operation gives you the remainder when two positive integers are divided. | ||
|  | We write it as follows-   | ||
|  | `A mod B = R` | ||
|  | 
 | ||
|  | This means, dividing A by B gives you the remainder R, this is different than your division operation which gives you the quotient. | ||
|  | 
 | ||
|  | Example-   | ||
|  | 7 mod 2 = 1 *(Dividing 7 by 2 gives the remainder 1)*   | ||
|  | 42 mod 7 = 0 *(Dividing 42 by 7 gives the remainder 0)*   | ||
|  | 
 | ||
|  | With the above two concepts understood you will easily understand the Euclidean Algorithm. | ||
|  | 
 | ||
|  | ### Euclidean Algorithm for Greatest Common Divisor (GCD)
 | ||
|  | The Euclidean Algorithm finds the GCD of 2 numbers. | ||
|  | 
 | ||
|  | You will better understand this Algorithm by seeing it in action. | ||
|  | Assuming you want to calculate the GCD of  1220 and 516, lets apply the Euclidean Algorithm-   | ||
|  | 
 | ||
|  | Assuming you want to calculate the GCD of  1220 and 516, lets apply the Euclidean Algorithm- | ||
|  |    | ||
|  | 
 | ||
|  | Pseudo Code of the Algorithm-   | ||
|  | Step 1: **Let `a, b` be the two numbers**   | ||
|  | Step 2: **`a mod b = R`**   | ||
|  | Step 3: **Let `a = b` and `b = R`**   | ||
|  | Step 4: **Repeat Steps 2 and 3 until `a mod b` is greater than 0**   | ||
|  | Step 5: **GCD = b**   | ||
|  | Step 6: Finish   | ||
|  | 
 | ||
|  | Javascript Code to Perform GCD- | ||
|  | ```javascript | ||
|  | function gcd(a, b) { | ||
|  |   var R; | ||
|  |   while ((a % b) > 0)  { | ||
|  |     R = a % b; | ||
|  |     a = b; | ||
|  |     b = R; | ||
|  |   } | ||
|  |   return b; | ||
|  | } | ||
|  | ``` | ||
|  | 
 | ||
|  | Javascript Code to Perform GCD using Recursion- | ||
|  | ```javascript | ||
|  | function gcd(a, b) { | ||
|  |   if (b == 0) | ||
|  |     return a; | ||
|  |   else | ||
|  |     return gcd(b, (a % b)); | ||
|  | } | ||
|  | ``` | ||
|  | 
 | ||
|  | You can also use the Euclidean Algorithm to find GCD of more than two numbers. | ||
|  | Since, GCD is associative, the following operation is valid- `GCD(a,b,c) == GCD(GCD(a,b), c)` | ||
|  | 
 | ||
|  | Calculate the GCD of the first two numbers, then find GCD of the result and the next number. | ||
|  | Example- `GCD(203,91,77) == GCD(GCD(203,91),77) == GCD(7, 77) == 7` | ||
|  | 
 | ||
|  | You can find GCD of `n` numbers in the same way. |