用C# 调试两个正整数的最大公约数
时间: 2024-10-12 18:14:36 浏览: 14
在C#中,我们可以使用欧几里得算法(也称为辗转相除法)来计算两个正整数的最大公约数(Greatest Common Divisor, GCD)。下面是一个简单的函数实现:
```csharp
using System;
public class GCDCalculator
{
public static int Calculate(int num1, int num2)
{
while (num2 != 0)
{
int temp = num2;
num2 = num1 % num2;
num1 = temp;
}
return num1;
}
public static void Main()
{
int a = 48, b = 18;
int gcd = Calculate(a, b);
Console.WriteLine($"The GCD of {a} and {b} is: {gcd}");
}
}
```
在这个代码中,`Calculate`方法接收两个整数作为参数,使用while循环不断将较大的数除以较小的数,并将余数赋值给较小的数,直到余数为零。此时,较小的数就是最大公约数。
在`Main`方法中,我们调用了`Calculate`函数并打印结果。例如,如果输入`a=48`和`b=18`,它会输出它们的最大公约数。
相关问题
c#输入两个正整数,求它们的最大公约数
可以使用辗转相除法求两个数的最大公约数,具体实现代码如下:
```
Console.WriteLine("请输入两个正整数:");
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
while (b != 0)
{
int temp = a % b;
a = b;
b = temp;
}
Console.WriteLine($"它们的最大公约数为:{a}");
```
在这个代码中,我们先通过 Console.ReadLine() 方法分别读入两个正整数,并使用 while 循环不断对两个数进行取模运算,直到其中一个数为 0,此时另一个数就是最大公约数。最后通过 Console.WriteLine() 方法输出最大公约数。
c# 控制台 输入两个正整数m和n,求其最大公约数和最小公倍数
以下是C#控制台程序求最大公约数和最小公倍数的代码示例:
```csharp
using System;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
Console.Write("请输入第一个正整数m:");
int m = int.Parse(Console.ReadLine());
Console.Write("请输入第二个正整数n:");
int n = int.Parse(Console.ReadLine());
int gcd = GetGcd(m, n);
int lcm = GetLcm(m, n, gcd);
Console.WriteLine("{0}和{1}的最大公约数为{2}", m, n, gcd);
Console.WriteLine("{0}和{1}的最小公倍数为{2}", m, n, lcm);
Console.ReadKey();
}
// 求最大公约数
static int GetGcd(int m, int n)
{
if (n == 0)
{
return m;
}
else
{
return GetGcd(n, m % n);
}
}
// 求最小公倍数
static int GetLcm(int m, int n, int gcd)
{
return m * n / gcd;
}
}
}
```
阅读全文