Java中使用辗转相除法求最大公约数

时间:2021-10-14 01:01:31

比较好用的是辗转相除法。
比如:49和91
 a      b        temp
49  %  91  =  49
91  %  49  =  42
49  %  42  =  7
42  %  7    =  0
所以最大公约数就是7.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class T {
 public static void main(String[] args) {
 int gcd = gcd(91, 49);
 System.out.println(gcd);
 }
 
 /**
 * greatest commond divisor
 * @param a
 * @param b
 * @return
 */
 public static int gcd(int a, int b) {
 while(b != 0) {
  int temp = a%b;
  a = b;
  b = temp;
 }
 return a;
 }
 
}