if(m%a==0&&n%a==0){
break//当得到最小公约数,就直接跳出循环,然后a就是最小公约数啊
}
同理if(max%m==0&&max%n==0){
break//当得到最大公倍数,就直接跳出循环,然后max就是最大公倍数啊
}
当然,还会有一种情况,就是最大公倍数就是m*n,所以在for循环里面,应该是max<=m*n哦。同理最小公约数,可能是1,不过你那里大于0,没问题的。
你的函数可以实现功能,只是如果只是要得到最小公约数和最大公倍数,不需要你那么麻烦吧,不是很明白你的需求额。
import java.util.Scannerpublic class C{
public static int fun1(int a1,int b1){
int c
c=a1%b1
while (c>0)
{a1=b1
b1=c
c=a1%b1
//return b1
}
return b1//把return写在这里;
}
public static void main(String[] args) {
int a,b,temp
int m
Scanner in=new Scanner(System.in)
a=in.nextInt()
b=in.nextInt()
if(a<b)
{temp=aa=bb=temp
}
m=fun1(a,b)
System.out.println("最大公约数为:"+m)
System.out.println("最小公倍数为:"+(a*b)/m)
}
}