在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。
import java.util.Scanner; public class Test4{ public static void main(String[] args){ System.out.print("请输入两个正整数:"); Scanner in = new Scanner(System.in); int max = in.nextInt(); int min = in.nextInt(); if(max<min){ int t = min; min = max; max = t; } int x=max,y=min; int d = x%y; while(d!=0){ x=y; y=d; d=x%y; } int HCF = y; int LCM = max*min/HCF; System.out.println("最大公约数:"+HCF+";最小公倍数:"+LCM); } }