算法:最大公约数

#欧几里得算法:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。

问题:求p,q的最大公约数:

(1)若q=0;p为最大公约数;
(2)否则,p除以q的余数r,p和q的最大公约数为q与r的最大公约数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class GongYueShu {

public static int gongyueshu(int x,int y) {

if(y==0)
return x;
int r=x%y;
return gongyueshu(y, r);
}
public static void main(String arg[]) {

System.out.println("公约数:"+gongyueshu(100, 20));
}
}

坚持原创技术分享,您的支持是我前进的动力!