## Algorithm Concept

An __algorithm is a step-by-step procedure or set of rules for solving a particular problem or accomplishing a specific task__. It is a well-defined, finite sequence of instructions that can be executed by a computing system to perform a computation. Algorithms are essential in computer science, mathematics, and various other fields to solve problems efficiently.

When you write a computer program, you are essentially translating an algorithm into a programming language that a computer can understand and execute. The process involves defining the logical steps and operations needed to achieve the desired outcome. The algorithm provides the high-level logic, and the programming language syntax allows you to express those instructions in a format that a computer can interpret.

**•** * Algorithm required flowcharts?* ⤏ An algorithm does not necessarily require a flowchart, but creating a flowchart can be a helpful and valuable tool in the process of designing, understanding, and communicating an algorithm.

Let's delve into the concept of algorithms with a mathematical example.

__Finding the Greatest Common Divisor (GCD) using Euclid's Algorithm__:

Euclid's Algorithm is a classic example of an algorithm used to find the greatest common divisor of two integers.

Given two integers *a* and *b* where `a > b`, the algorithm proceeds as follows:

**Step 1**: Divide *a* by *b* and get the remainder. Let's call this remainder *r*.

**Step 2:** If *r* is 0, then *b* is the GCD of *a* and *b*.

**Step 3:** If *r* is not 0, set *a ← b* and *b ← r*, and repeat from Step 1.

Let's see this algorithm in action with an mathematical expression:

__Example__:

Let `a = 48` and `b = 18`.

**1.** *48* divided by *18* gives a quotient of *2* and a remainder of *12*. Set *a ← 18* and *b ← 12*.

**2.** *18* divided by *12* gives a quotient of *1* and a remainder of *6*. Set *a ← 12* and *b ← 6*.

**3.** *12* divided by *6* gives a quotient of *2* and a remainder of *0*. Since the remainder is *0*, *6* is the GCD of *48* and *18*.

Algorithm can be expressed mathematically as:

• Kindly rotate your mobile screen to show the formula.

$\text{gcd}(a,b)=\{\begin{array}{ll}{\textstyle a}& {\textstyle \text{if}b=0}\\ {\textstyle \text{gcd}(b,a\phantom{\rule{0ex}{0ex}}\phantom{\rule{0.6667em}{0ex}}\mathrm{m}\mathrm{o}\mathrm{d}\text{\hspace{0.17em}}\text{\hspace{0.17em}}b)}& {\textstyle \text{otherwise}}\end{array}$

In this formula, `gcd(a,b)` represents the greatest common divisor of *a* and *b*, and *mod* denotes the modulus operation.

**•** Euclid's Algorithm is an example of a clear, step-by-step procedure that can be executed to find the GCD efficiently, demonstrating the nature of algorithms in problem-solving.

It's time to write a computer program to execute this algorithm using the C language. Here's a simple C program that implements Euclid's Algorithm to find the Greatest Common Divisor (GCD) of two numbers:

#include ＜stdio.h> // Function to find the GCD using Euclid's Algorithm int gcd(int a, int b) { if (b == 0) { return a; } else { return gcd(b, a % b); } } int main() { int num1, num2; // Input two integers from the user printf("Enter the first integer: "); scanf("%d", &num1); printf("Enter the second integer: "); scanf("%d", &num2); // Call the gcd function to find the GCD int result = gcd(num1, num2); // Display the result printf("The GCD of %d and %d is %d\n", num1, num2, result); return 0; }

Enter the first integer: 48 Enter the second integer: 18 The GCD of 48 and 18 is 6

***** This program prompts the user to input two integers, then calculates and prints the GCD of the two numbers using the *'gcd'* function based on Euclid's Algorithm. The *'%'* operator in C is used for the modulus operation.

In summary, the study of algorithms teaches us how to think systematically, solve problems efficiently, and create solutions that are applicable across diverse domains. It underscores the importance of structured approaches to problem-solving in both theoretical and practical contexts.

#### What is New?

We have just updated this website & still working on adding new content & updating existing features.