问题描述
输入两个正整数a,b(a,b< 231−1 ),输出它们的最大公约数
Sample Input
20 50
Sample Output
10
代码
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int a,b,c,xh;
printf("请输入两个正整数:");
scanf("%d%d",&a,&b);
if(a>b)
{
xh=a;
}
else if(a<b)
{
xh=b;
}
else if(a==b)
{
printf("%d和%d的最大公约数是%d\n",a,b,a);
system("pause");
return 0;
}
for(;xh>0;xh--)
{
if(a%xh==0 && b%xh==0)
{
printf("%d\n",xh);
break;
}
}
system("pause");
return 0;
}
最大公倍数
明显有最大公倍数*最小公约数=a*b