#include
void main()
{
int m,n,i,j,k;
printf("输入两个正整数:");
scanf("%d%d",&m,&n);
k = mfor(i=1;i<=k;i++)
{
if(m%i==0 && n%i==0)
j=i;
}
printf("%d和%d的最大公约数是%d\n",m,n,j);
}
您好,中公教育为您服务。
求最大公约数的方法,用交换两个个数,互相取余数较简单,不过按你的要求穷举法 只能这么写了
#include
int Gcd(int a, int b)
{
int i, gcd = 1;
if(a > b)
{
for(i=1; i<=b; i++) //穷举所有小于b的数,在其中找出能被a,b整除的最大的数,即最大公约数
{
if(b%i==0 && a%i==0 && i>gcd)
{
gcd = i;
}
}
return gcd;
}
if(b > a)
{
for(i=1; i<=a; i++)
{
if(b%i==0 && a%i==0 && i>gcd)
{
gcd = i;
}
}
return gcd;
}
}
int main()
{
int gcd;
gcd = Gcd(8, 12);
printf("%d\n", gcd);
return 0;
}
如有疑问,欢迎向中公教育企业知道提问。