求任意两个数的最大公约数。
1)利用辗转相除法求最大公约数
2)利用递归求最大公约数
import java.util.Scanner;
/*
辗转相除法求最大公约数
*/
public class _6_1 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入第一个数:");
int m=scanner.nextInt();
System.out.println("请输入第二个数:");
int n=scanner.nextInt();
int t=fun(m,n);
System.out.println("最大公约数为:"+t);
int t2=fun2(m,n);
System.out.println("最大公约数为:"+t2);
}
/*
求最大公约数,辗转相除法
*/
public static int fun(int a,int b){
int temp;
//保证前者大于后者
if(a<b){
temp=a;
a=b;
b=temp;
}
//辗转相除
while(b!=0){
temp=a%b;
a=b;
b=temp;
}
return a;
}
//也可以使用递归求最大公约数
public static int fun2(int a,int b){
if(a%b==0){
return b;
}
else
return fun2(b,a%b);
}
}