下面介绍三种求最大公约数的办法,是我自己整理的,如果看官看的看了请你直视我的眼睛,看了就求你点个赞呗TMT。写了好多篇文章还没人给我点过。TTTTT
!自创土办法!
#include<stdio.h>
int main()
{
int a,b,n;
scanf("%d%d",&a,&b);
for(int i=1;i<=a&&i<=b;i++)
{
if(a%i==0&&b%i==0)
n=i;
}
printf("%d\n",n);
return 0;
}
!争相减损术!
#include<stdio.h>
int gongyueshu(int a,int b);
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",gongyueshu(a,b));
return 0;
}
int gongyueshu(int a,int b)
{
if(a>b)
return (gongyueshu(a-b,b));
if(a<b)
return (gongyueshu(b-a,a));
if(a==b)
return a;
}
!辗转相除法!
#include <iostream>
using namespace std;
int fac(int a,int b);
int main()
{
int a,b,y;
cin>>a>>b;;
y=fac(a,b);
cout<<y<<endl;
return 0;
}
int fac(int x,int y)
{
int r;
r=x%y;
if(r==0)
return y;
/*输出除数*/
else
return fac(y,r);
/*余数和除数返回,余数变成除数*/
}