/*最大公约数: 如果有一个自然数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)); }}