1,累除法 import java.util.Scanner; public class Gcd { public static void main(String[]args) { Scanner rd = new Scanner(System.in); int m; System.out.println("请输入m的值"); m = rd.nextInt();//输入一个数 int n; System.out.println("请输入n的值"); n = rd.nextInt();//输入第二个数 int x; if(m<n){//判断m和n的大小 m=n; } if(m%n==0){//判断最大公约数是否是n本身 x=n; System.out.println(x); } else { for (int i=0;m%n!=0;i++) {//用m对n取余 x = m % n; m = n; n = x; System.out.println("最大公约数是" + x); } } } }
2,整除法
import java.util.Scanner;
public class Gcd {
public static void main(String[]args){
int m;
int n;
Scanner rd=new Scanner(System.in);
System.out.println("请输入m的值");
m= rd.nextInt();
System.out.println("请输入n的值");
n= rd.nextInt();
int x=0;
if(m<n){//判断m与n的大小
m=n;
}
while (x<=n){//在1到n这个区间找
x++;
if(m%x==0&&n%x==0){//既被m整除又被n整除
System.out.println(x);
}
}
}
}
3,累减法
import java.util.Scanner;
public class Gcd {
public static void main(String[]args){
int m;
int n;
Scanner rd=new Scanner(System.in);
System.out.println("请输入m的值");
m= rd.nextInt();
System.out.println("请输入n的值");
n= rd.nextInt();
while (m!=n){//求差,一直减到m=n时就是最大公因数
if(m>n){
m=m-n;
}
else {
n=n-m;
}
System.out.println(m);
}
}
}