1.求两个正整数m和n的最大公约数可以使用辗转相除法。
例如:m=24,n=18
辗转相除法是这样进行的:
24/18=1(余6)
18/6=0(余0)
因此,我们可以用while循环,以余数不等于零作为判断条件,再定义一个变量t赋值给m,n等于m与n相除的余数,m等于变量t,这样就达到了m与n互换的目的,从而让m作为下次相除时的被除数,如此反复,最后返回m即可。
2.求最小公倍数的求法:
m*n=最大公约数*最小公倍数,所以我们只需用m*n/最大公约数即可得到最小公倍数。
public class Work {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter m :");
int m = sc.nextInt();
System.out.println("Enter n :");
int n = sc.nextInt();
int i = CommonDivisors(m, n);//用一个变量接受m
System.out.println("Common divisors is: " + CommonDivisors(m, n)+",Common multiples is: "+m*n/i);//m*n/最大公约数
}
public static int CommonDivisors(int m, int n) {
if (n > m) {
int term = n;
n = m;
m = term;
}
while (n != 0) {
if (m == n) {
return n;
}
int t = n;//达到了m与n互换的目的
n = m % n;
m = t;//m作为下一次两数相除时的被除数
}
return m;
}
}