辗转法求最大公约数和最小公倍数
来源:互联网 发布:淘宝极有家可靠吗 编辑:程序博客网 时间:2024/06/02 21:02
/// <summary>
/// 求最大公约数
/// 辗转相除法
/// </summary>
/// <param name="num1"></param>
/// <param name="num2"></param>
/// <returns></returns>
public static int getGreatestCommonMeasure(int num1, int num2)
{
if (num1 == 0) return Math.Abs(num2);
if (num2 == 0) return Math.Abs(num1);
int num3 = 0;
//insure: num1 >= num2
if (num1 < num2)
{
num3 = num1;
num1 = num2;
num2 = num3;
}
num3 = num1 % num2;
while (num3 != 0)
{
num1 = num2;
num2 = num3;
num3 = num1 % num2;
}
return Math.Abs(num2);
}
/// <summary>
/// 求最小公倍数
/// </summary>
/// <param name="num1"></param>
/// <param name="num2"></param>
/// <returns></returns>
public static int getLeastCommonMultiple(int num1, int num2)
{
int GCM = getGreatestCommonMeasure(num1,num2);
if (GCM == 0) return 0;
return num1 * num2 / GCM;
}
/// 求最大公约数
/// 辗转相除法
/// </summary>
/// <param name="num1"></param>
/// <param name="num2"></param>
/// <returns></returns>
public static int getGreatestCommonMeasure(int num1, int num2)
{
if (num1 == 0) return Math.Abs(num2);
if (num2 == 0) return Math.Abs(num1);
int num3 = 0;
//insure: num1 >= num2
if (num1 < num2)
{
num3 = num1;
num1 = num2;
num2 = num3;
}
num3 = num1 % num2;
while (num3 != 0)
{
num1 = num2;
num2 = num3;
num3 = num1 % num2;
}
return Math.Abs(num2);
}
/// <summary>
/// 求最小公倍数
/// </summary>
/// <param name="num1"></param>
/// <param name="num2"></param>
/// <returns></returns>
public static int getLeastCommonMultiple(int num1, int num2)
{
int GCM = getGreatestCommonMeasure(num1,num2);
if (GCM == 0) return 0;
return num1 * num2 / GCM;
}
0 0
- 辗转法求最大公约数和最小公倍数
- 辗转法求最大公约数、最小公倍数
- 5.C++ 辗转相处法求最大公约数和最小公倍数
- 辗转相除法求 最大公约数和最小公倍数
- 辗转相除法 求最大公约数和最小公倍数
- 求最大公约数和最小公倍数(辗转相除法)
- 辗转相除法求最大公约数和最小公倍数
- 辗转相除法求最大公约数和最小公倍数
- (算法)辗转相除法求最大公约数和最小公倍数
- 欧几里德算法(辗转相除法)求最大公约数和最小公倍数
- C语言--辗转相除法求最大公约数和最小公倍数
- 求最大公约数和最小公倍数(辗转相除)
- C语言--辗转相除法求最大公约数和最小公倍数
- 辗转相除法(欧几里得)求最大公约数和最小公倍数
- 【c语言】用辗转相除法求最大公约数和最小公倍数
- 蓝桥杯-辗转相除法求最大公约数和最小公倍数、Eval函数
- 用辗转相除法求最大公约数和最小公倍数
- 辗转相除法 求 两个数的 最大公约数 和 最小公倍数
- jquery ui和jquery easyui
- 第十三周OJ项目统计元音字母个数
- 安卓市场跳转
- Jenkins Master/Slave架构
- Tuxedo的安装
- 辗转法求最大公约数和最小公倍数
- C#控件小技巧 (持续添加)
- VMware Workstation 9 安装图形化界面 CentOS6.5
- 第十三周项目一d(数组大折腾)
- UFLDL Exercise: Implement deep networks for digit classificationz
- bss,data,text,rodata,堆,栈,常量段
- Jenkins的Linux的Slave的配置
- Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源码
- 第13周项目1整型数组