import java.util.Scanner;
public class Jiafa {   
    public static void main(String[] args) {
 Scanner sca =new Scanner(System.in);
 System.out.println("请输入两个数:");//输入两个数中间用空格隔开就行
 int m = sca.nextInt();
 int n = sca.nextInt();
 int temp,r;
 if(n<m)
 {
     temp=n;
     n=m;
     m=temp;
 }
 int p = n*m;
 while(m!=0)
 {
     r=n%m;
     n=m;
     m=r;
 }
 System.out.println("他们的最大公约数是:"+n);
 System.out.println("他们的最小公倍数是:"+p/n);    }}while这几部看不懂,n已经是最大值了
while(m!=0)
 {
     r=n%m;
     n=m;
     m=r;
 }n=m是什么意思,为什么要这么赋值,n的值和m的值也不一样,m=r又是为什么?
麻烦大虾指点下!!!