diff --git a/README b/README deleted file mode 100644 index ea3fb46..0000000 --- a/README +++ /dev/null @@ -1 +0,0 @@ -Euclid's Algorithm in C diff --git a/README.md b/README.md new file mode 100644 index 0000000..56fedd8 --- /dev/null +++ b/README.md @@ -0,0 +1,77 @@ +# Euclid's Algorithm in C + +## Overview + +This C implementation calculates the Greatest Common Divisor (GCD) of two integers using Euclid's Algorithm. Euclid's Algorithm is a highly efficient method for finding the GCD, which is the largest positive integer that divides both numbers without a remainder. + +## Mathematical Formula + +Euclid's Algorithm is based on the following principle: + +* GCD(a, b) = GCD(b, a mod b) where 'a mod b' is the remainder when 'a' is divided by 'b'. +* GCD(a, 0) = a + +The algorithm repeatedly applies this formula until the second number becomes 0. At that point, the first number is the GCD. + +## Description of Euclid's Algorithm + +Euclid's Algorithm is an iterative process. Here's a breakdown: + +1. **Input:** Two non-negative integers, `a` and `b`. +2. **Iteration:** + * Calculate the remainder `r` when `a` is divided by `b` ( `r = a % b` ). + * If `r` is 0, then `b` is the GCD. Return `b`. + * Otherwise, set `a = b` and `b = r`. + * Repeat the iteration. +3. **Output:** The GCD of `a` and `b`. + +## Uses of Euclid's Algorithm + +Euclid's Algorithm has numerous applications in mathematics and computer science, including: + +* **Finding the Greatest Common Divisor (GCD):** The primary use, as demonstrated by this implementation. +* **Simplifying Fractions:** Dividing both the numerator and denominator of a fraction by their GCD reduces the fraction to its simplest form. +* **Cryptography:** Used in various cryptographic algorithms, such as RSA. +* **Modular Arithmetic:** Essential for calculations involving modular inverses and congruences. +* **Computer Science:** Used in hashing algorithms and other data structures. + +## Code Implementation + +The C code provides a function `euclid(int m, int b)` that implements Euclid's Algorithm iteratively. + +```c +#include +#include + +int euclid(int m, int n) { + int remainder; + + remainder = m % n; + while(remainder != 0) { + m = n; + n = remainder; + remainder = m % n; + } + return(n); +} +``` +## Usage + +To use the euclid function + +```c +#include + +int euclid(int m, int n); // Declare the function + +int main() { + int num1 = 48; + int num2 = 18; + int result = euclid(num1, num2); + printf("GCD of %d and %d is %d\n", num1, num2, result); // Output: GCD of 48 and 18 is 6 + return 0; +} +``` + +# Author +Koree A. Smith