求两个正整数m、n的最大公约数

  1. 辗转相除法:
#include<stdio.h>
int main()
{
 int m,n,t,r;
 scanf("%d%d",&m,&n);
 if(m<n)
 {
  t=m;
  m=n;
  n=t;
 }
 r=m%n;
 while(r!=0)
 {
  m=n;
  n=r;
  r=m%n;
 }
 printf("%d\n",n);
 return 0;
}

#include<stdio.h>
int main()
{ int m,n,min;
 scanf("%d%d",&m,&n);
 min=m>n?n:m;
 while(min>1&&(m%min!=0)||(n%min!=0))
   min--;//每次减一寻找最大公约数
 printf("%d\n",min);
 return 0;
}
 

猜你喜欢

转载自blog.csdn.net/weixin_43534549/article/details/86675597