算法 最大公约数

求两个正整数的最大公约数。

1、傻瓜式的循环。

private static int gcd2(int a, int b) {
  if(0==a % b){
    return b;
  }
  for (int i =b/2; i >0; i--) {
    if(0== a % i && 0== b % i){
    b=i;
   }
  }
return b;
}

2、欧几里德算法

  两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。

  private static int gcd(int a, int b) {
    int c=b;
    while(c!=0){
      c=a % b;
      a=b;
      b=c;
  }
  return a;
}

 

猜你喜欢

转载自www.cnblogs.com/lonelyboat/p/9362968.html