话不多说,直接上代码:
方法一:循环试探
int Gcd(size_t* a, size_t* b)
{
if (
*a <
*b)
{
*a =
*b^
*a;
*b =
*b^
*a;
*a =
*b^
*a;
}
while (
*a%*b !=
0&&
*b>
0)
{
*b-=
1;
}
return *b;
}
方法二:辗转相除法
int Gcd(
int*a,
int*b)
{
int tmp =
0;
while (
*a%*b !=
0)
{
tmp =
*a%*b;
*a =
*b;
*b = tmp;
}
return *b;
}
main函数
int main()
{
size_t data1 =
0;
size_t data2 =
0;
size_t ret =
0;
printf(
"请输入两个正整数:");
scanf(
"%d%d", &data1, &data2);
ret=Gcd(&data1, &data2);
printf(
"则两个数的最大公约数为:%d\n", ret);
system(
"pause");
return 0;
}
结果:
转载请注明原文地址: https://ju.6miu.com/read-22692.html