/*最大公约数:
 如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。几个自然数公有的约数,叫做这几个自然数的公约数。
 公约数中最大的一个公约数,称为这几个自然数的最大公约数。 最小公倍数:
 两数相乘再除以最大公约数,即为最小公倍数
 */package ch00;
import org.w3c.dom.ls.LSOutput;
import java.util.Scanner;
public class FindMaximumNumberOfConventions {
    //从高向低遍历,寻求最大合法项
 public static int Solution1(int n,int m){
        for(int i=m; i>0; i--)
            if(n%i==0 && m%i==0){
                return i;
 }
        return 0;
 }
    //碾转相除法
 public static int Solution2(int n,int m){
        int i;
 while(m>0){
            i = n%m;
 n = m;
 m = i;
 }
        return n;
 }
    //更相减损法
 public static int Solution3(int n,int m){
        while(n!=m){
            if(n>m)
                n-=m;
 else m-=n;
 }
        return n;
 }
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
 System.out.println("请输入数n:");
 int n=sc.nextInt();
 System.out.println("请输入数m:");
 int m=sc.nextInt();
 int temp;
 if(n<m){
            temp=n;
 n=m;
 m=temp;
 }
        System.out.println("最大公约数:");
 System.out.println("Solution1:"+Solution1(n,m));
 System.out.println("Solution2:"+Solution2(n,m));
 System.out.println("Solution3:"+Solution3(n,m));
 System.out.println("最小公倍数:"+n*m/Solution1(n,m));
 }
}

Cherryzc
7 声望1 粉丝