使用java实现计算两个数的最大公约数
/**
* @return int
* @Author idto315
* @Description 计算两个数据的最大公约数 【欧几里得算法】
* 欧几里得定理算法:a为非负整数 b为正整数 gcd(a,b)=gcd(b,r) 且 gcd(c,0) = |c|
* @Date 9:32 2022/1/9
* @Param [a, b]
**/
public static int maxGCD(int a, int b) {
// 要求:a为非负整数 b为正整数
if(a<=0 || b<0){
return 0;
}
int r1 = a, r2 = b;
if(a<b){
r1 = b; r2 = a;
}
while (r2>0){
int q= r1/r2;
int r = r1-q*r2;
r1 = r2;
r2 = r;
}
return r1;
}
public static void main(String[] args) {
System.out.println(maxGCD(34,51)); // 结果=17
}