辗转相减法:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b;
printf("请输入要求公约数的两个数:");
scanf("%d %d",&a,&b);
if (a < b)
{
a = a^b;
b = a^b;
a = a^b;
}
while ( (a-b) > b)
{
a = a - b;
}
while ( (a-b) != 0 )
{
int temp = a - b;
a = b;
b = temp;
if (a < b)
{
a = a^b;
b = a^b;
a = a^b;
}
}
printf("最大公约数为:%d\n",b);
system("pause");
return 0;
}
辗转相除法:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b;
printf("请输入要求公约数的两个数:");
scanf("%d %d",&a,&b);
if (a < b)
{
a = a^b;
b = a^b;
a = a^b;
}
while (a%b != 0)
{
int temp = a%b;
a = b;
b = temp;
}
printf("最大公约数为:%d\n",b);
system("pause");
return 0;
}