求兩個正數的最大公約數和最小公倍數

1、求兩個數(A和B)的最大公約數:算法

1.算法思路: 展轉法循環

  ①A做爲被除數,B做爲除數,C=A%B方法

  ②若是C==0,B爲最大公約數im

  ③不然,繼續取模運算,A=B,B=C,C=A%B,同上while

2.例子:return

  int CountMaxComYueShu(int A,int B)
{
  if((0==A)||(0==B))
  {
   return 0;
  } 
 
  int C=A%B;
  while(C!=0)
  {
    A=B;
    B=C;
    C=A%B;
  }
  return B;
}

2、求兩個數(A和B)的最小公倍數

1.算法思路:

  方法(1).利用最大公約數C求最小公倍數D=A*B/C

  方法(2).循環查找法,遞增較大數的倍數,找到能同時整除兩個數的倍數爲止

2.例子:循環查找法:

int MinCommondTime(int m,int n)//求最小公倍數 {  if(0==m)    return n;  else if(0==n)    return m;  int max=m*n;  int k=m;  if(n>m)   k=n;  int j=k;  for(int i=0;j<=max;j=k*i)  {     if((j%m==0)&&(j%n==0))     return j;     i++;  }   return -1;} 

相關文章
相關標籤/搜索