做了好几次还是容易忘记的最小公倍数和最大公约数求法😔

最小公倍数求法:

设两个数分别是m,n

先讲两位数排序,较大值为m,较小值为n。

int temp  //中间变量

if(m<n)

{

  temp=m;

  m=n;

  n=temp;

}

1.利用公式:最小公倍数=m*n/最大公约数;

//最大公约数:

for(int i=m;i>=1;i--)

{

  if(m%i==0&&n%i==0)

   {

    printf("%d",i);//最大公约数

    break;

   }

}


//最大公倍数:

result=m*n/i;

2.按照定义求最小公倍数;

for(int i=m;i>0;i++)

{

  if(i%m==0&&i%n==0)

  {printf("%d",i);

  break;}

}

3.辗转相除法;

t=m%n;

while(t!=0)

{

m=n;

n=t;

t=m%n;

}

printf("%d",n);//最小公倍数

 

posted @ 2021-12-04 11:53  Q·K  阅读(99)  评论(0编辑  收藏  举报