Concept: What is GCD?
The GCD (Greatest Common Divisor) of two numbers is the largest positive integer that divides both numbers without leaving a remainder.
Example
Numbers: 20 and 30
Divisors of 20: 1, 2, 4, 5, 10, 20
Divisors of 30: 1, 2, 3, 5, 6, 10, 15, 30
GCD = 10
Formula (Using Euclid’s Algorithm)
GCD(a, b) = GCD(b, a % b)
When b = 0, then GCD(a, b) = a
Step 1: Design Page – GCDExample.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GCDExample.aspx.cs" Inherits="GCDExample" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Find GCD using C# WebForms</title>
<style>
body {
font-family: Arial;
background-color: #f4f7fc;
margin: 50px;
}
.container {
width: 500px;
margin: auto;
background: #fff;
border-radius: 10px;
box-shadow: 0 0 10px #ccc;
padding: 25px;
}
h2 {
text-align: center;
color: #1A2A80;
}
.form-control {
width: 100%;
padding: 8px;
margin-top: 10px;
}
.btn {
background-color: #7A85C1;
color: white;
border: none;
padding: 10px;
border-radius: 5px;
cursor: pointer;
width: 100%;
margin-top: 15px;
}
.btn:hover {
background-color: #5b68a1;
}
.result {
margin-top: 20px;
font-weight: bold;
color: #333;
text-align: center;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div class="container">
<h2>Calculate GCD (Greatest Common Divisor)</h2>
<asp:Label ID="lblNum1" runat="server" Text="Enter First Number:"></asp:Label><br />
<asp:TextBox ID="txtNum1" runat="server" CssClass="form-control" placeholder="Example: 20"></asp:TextBox><br />
<asp:Label ID="lblNum2" runat="server" Text="Enter Second Number:"></asp:Label><br />
<asp:TextBox ID="txtNum2" runat="server" CssClass="form-control" placeholder="Example: 30"></asp:TextBox><br />
<asp:Button ID="btnCalculate" runat="server" Text="Find GCD" CssClass="btn" OnClick="btnCalculate_Click" /><br />
<asp:Label ID="lblResult" runat="server" CssClass="result"></asp:Label>
</div>
</form>
</body>
</html>
Step 2: Backend Code – GCDExample.aspx.cs
using System;
public partial class GCDExample : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnCalculate_Click(object sender, EventArgs e)
{
try
{
int num1 = Convert.ToInt32(txtNum1.Text.Trim());
int num2 = Convert.ToInt32(txtNum2.Text.Trim());
if (num1 <= 0 || num2 <= 0)
{
lblResult.Text = "Please enter positive numbers only.";
lblResult.ForeColor = System.Drawing.Color.Red;
return;
}
int gcd = FindGCD(num1, num2);
lblResult.Text = "GCD of " + num1 + " and " + num2 + " is: " + gcd.ToString();
lblResult.ForeColor = System.Drawing.Color.Green;
}
catch
{
lblResult.Text = "Invalid input! Please enter valid integers.";
lblResult.ForeColor = System.Drawing.Color.Red;
}
}
// Recursive function to find GCD
private int FindGCD(int a, int b)
{
if (b == 0)
return a; // Base case
else
return FindGCD(b, a % b); // Recursive case
}
}
Example Output
| Input | Output |
|---|
| 20, 30 | GCD of 20 and 30 is: 10 |
| 56, 98 | GCD of 56 and 98 is: 14 |
| 13, 7 | GCD of 13 and 7 is: 1 |
Algorithm
Step 1: Start
Step 2: Input two numbers a and b
Step 3: Repeat while b != 0
temp = b
b = a % b
a = temp
Step 4: GCD = a
Step 5: Display GCD
Step 6: Stop
Example
Input: a = 20, b = 30
| Step | a | b | a % b | Recursive Call |
|---|
| 1 | 20 | 30 | 20 | FindGCD(30, 20) |
| 2 | 30 | 20 | 10 | FindGCD(20, 10) |
| 3 | 20 | 10 | 0 | FindGCD(10, 0) |
| 4 | 10 | 0 | - | Return 10 |
Output → GCD = 10
Explanation
Advantages
Limitations
Conclusion
This WebForms example demonstrates how to calculate the Greatest Common Divisor (GCD) using recursion in C#.
It’s a perfect example to understand both recursive functions and Euclid’s Algorithm in real-world web-based applications.