求最小公倍数

介绍:

求两个数的最小公倍数

思路:

最小公倍数有几种求法,我选择先求最大公约数,然后利用最小公倍数=(num1*num2)/最大公约数的方法来求
import java.util.Scanner;
public class 最小公倍数 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int x=input.nextInt();
        int y = input.nextInt();
        minNum(x,y);
    }

    private static void minNum(int x, int y) {
        if(x==0&&y==0){
            System.out.println("不能两者都为0");
        }else{
            int temp,a,b;
            if(x<y){//当x<y时,将x、y换位置。使x>y,因为求最大公约数是取余,前面的数要比后面的大
                temp = y;
                y = x;
                x = temp;
            }
            a = x;
            b = y;
            while(b!=0){
                //第一次判断的时候,如果b==0,那么说明最大公约数就是0;
                //第一次过后,b就代表的是余数了,余数如果不为0,说明还没有整除,需要一直循环,直到能够整除。
                //当b==0时,上一个b的值赋值给了a。所以最大公约数现在是a。
                temp = a%b;
                a = b;
                b = temp;
            }
            System.out.println("最大公约数为"+a);
            System.out.println("最小公倍数为"+(x*y)/a);
        }
    }
}

总结:

这道题其实就是对辗转相除法的一个实现,利用辗转相除法来计算最大公约数。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章