辗转相除法求最大公约数与最小公倍数

非常简单的一个小代码,想起初学时看半天没懂,今天遇到了就总结了一下,看代码:
#include<stdio.h>
int main()
{
    int a,b,c,d,t,max,min;
    scanf("%d%d",&a,&b);
    if(b>a)             //如果b>a,交换双方的值,使大者a为被除数
    { t=a;a=b;b=t;}
	d=a*b;              //待会计算最小公倍数
    while((c=a%b)!=0)   //余数不为零,继续执行循环
    { a=b;              //使除数b变为被除数a
      b=c;              //使余数c变为除数b
      }
      max=b;            //最大公约数
      min=d/max;        //计算最小公倍数
      printf("最大公约数:%d\n最小公倍数:%d\n",max,min);
      return 0;
      } 

猜你喜欢

转载自blog.csdn.net/qq_41785863/article/details/80284035
今日推荐