/辗转相除的简单函数形式,当其中一个为0时,则跳出while循环,此时x+y就为最小公约数/ int slyar(int x,int y) { while(x>y?(x%=y):(y%=x)); return x+y; } /辗转相除:/ #include"stdio.h" int main() { int a,b,t,n,m; while(scanf("%d%d",&a,&b)!=EOF) { if(a<b) { t=a;a=b;b=t; } m=a;n=b; while(n!=0) { t=m%n; m=n; n=t; } printf("最大公约数:%d\n",m); printf("最小公倍数:%d\n",a*b/m); } return 0; }