代码:
import java.util.ArrayList;
import java.util.Scanner;
public class test3 {
public static void main(String arg[])
{
//从键盘输入两个数num1,num2
System.out.println("请开始输入数:");
Scanner test = new Scanner(System.in);
int num1 = test.nextInt();
int num2 = test.nextInt();
//定义这两个数作为求公因数公倍数循环的别量
//求num1和num2最小值,为了针对没有公因数的情况,减少运算量(不知道1是不是)
int min = (num1 > num2) ? num2 : num1;
int max = (num1 > num2) ? num1 : num2;
//求公因数
for(int i = min;(i >= 1 );i--)
{
if( num1 % i ==0 && num2 % i==0)
{
System.out.println("这两个数的最大公因数为:"+i);
break;
}
}
//求公倍数
while(max % num1 != 0|| max % num2 !=0)
{max++;}
System.out.println("这两个数的最小公倍数为:"+max);
}
}
好像 最小公倍数=num1*num2/最大公因数,这样应该更好一点。