C#获取两个数的最大公约数和最小公倍数示例
程序员文章站
2024-02-18 22:35:46
最大公约数:指两个或多个整数共有约束中最大的一个。
最小公倍数:如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个整数来说,指该两数共有倍数中最...
最大公约数:指两个或多个整数共有约束中最大的一个。
最小公倍数:如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个整数来说,指该两数共有倍数中最小的一个。
复制代码 代码如下:
/// <summary>
/// 最大公约数
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
public static int gcd(int a, int b)
{
int gcd = 1;
int min = a > b ? b : a;
for (int i = min; i >= 1; i--)
{
if (a % i == 0 && b % i == 0)
{
gcd = i;
break;
}
}
return gcd;
}
/// <summary>
/// 最小公倍数
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
public static int lcm(int a, int b)
{
int lcm = a * b;
int max = a > b ? a : b;
for (int i = max, len = a * b; i <= len; i++)
{
if (i % a == 0 && i % b == 0)
{
lcm = i;
break;
}
}
return lcm;
}