求两个数的最大公约数
采用欧几里得算法:辗转相除法
比如求 49 和 14 的最大公约数
49 % 14 = 7
14 % 7 = 0
所以7 是49 和7的最大公约数
再比如说求 47 和 20 的最大公约数
47 % 20 = 7
20 % 7 = 6
7 % 6 = 1
6 % 1 = 0
所以1 是47 和 20 的最大公约数
不知道有没有看出规律
那上一个被模数模上上一个的结果
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int m = in.nextInt();
int n = in.nextInt();
System.out.println(gcd(m,n));
}
public static int gcd(int m, int n){
//m 要大于 n
if(m < n){
int tmp = m;
m = n;
n = tmp;
}
while(n != 0){
int ret = m % n;
m = n;
n = ret;
}
return m;
}
}
输入m和n,要保证在求约数的时候,m 永远要大于 n~