#include<stdio.h>
main()
{
int a,b,c,n,m;
scanf("%d,%d",&n,&m);
if(m<n)
{
a=m;
m=n;
n=a;
}
c=n*m;
while(n!=0)
{
b=m%n;
m=n;
n=b;
}
printf("公约数%d\n公倍数%d\n",m,c/m);
}
求解while这个循环什么意思有什么作用,求解辗转相除法原理解释
http://baike.baidu.com/view/255668.htm 这是原理。看看就明白了。
简单的想法
设两数为a、b(a>b),求a和b最大公约数(a,b)的步骤如下:用b除a,得a÷b=q......r1(0≤r1)。若r1=0,则(a,b)=b;若r1≠0,则再用r1除b,得b÷r1=q......r2 (0≤r2).若r2=0,则(a,b)=r1,若r2≠0,则继续用r2除r1,……如此下去,直到能整除为止。其最后一个非零除数即为(a,b)。
求while循环的流程图