辗转法求最大公约数和最小公倍数

来源:互联网 发布:淘宝极有家可靠吗 编辑:程序博客网 时间: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 == 0return Math.Abs(num2);
            
if (num2 == 0return 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 == 0return 0;
            
return num1 * num2 / GCM;
        }

0 0
原创粉丝点击