利用Stein算法求最大公约数;
最小公倍数。
import java.util.Scanner;
public class Test2{
/**
*利用Stein算法求最大公约数
*/
public static int gcd(int a,int b){
int m,n,r;
if(a>b){
m = a;
n = b;
}else{
m = b;
n = a;
}
if(n == 0){
return m;
}
if(m%2==0&&n%2==0){
return 2*gcd(m/2,n/2);
}
if(m%2==0){
return gcd(m/2,n);
}
if(n%2==0){
return gcd(m,n/2);
}
return gcd((m+n)/2,(m-n)/2);
}
public static void main(String[] args) throws Exception{
int a ,b,c,d;
System.out.println("输入两个正整数:");
Scanner s = new Scanner(System.in);
a = s.nextInt();
b = s.nextInt();
c = gcd(a,b);
d = (a*b)/c;
System.out.println("a和b的最大公约数为:"+c);
System.out.println("a和b的最小公倍数为:"+d);
}
}