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

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;
}

 

版权声明:本文为lonelyboat原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lonelyboat/p/9362968.html