一、问题描述
从键盘接收两个数字,求其最大公约数
二、分析
这里用到的方法是辗转相除法
1、什么是辗转相除法呢?
当余数为0的时候,此时的除数就是最大公约数
2、举例
3、我们这里a为24、b为18,a>b,那么a<b的时候是什么样的呢?
三、代码实现
import java.util.Scanner;
public class MaxNum {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println(“请输入两个数字:”);
int a=sc.nextInt();
int b=sc.nextInt();
int c=a%b; //24%18=6
while(c!=0){//余数不为0
a=b; //a=18
b=c; //b=6
c=a%b; //18%6=0 余数为0时跳出循环,最大公约数就是此时的除数b
}
System.out.println(“最大公约数为”+b);
}
}
四、运行结果