#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
int main()
{
//辗转相除法
int a, b;
scanf("%d %d", &a, &b);
int a1, b1;
//a1是被除数,b1是除数
if (a > b)
{
a1 = 1;
b1 = b;
}
else
{
a1 = b;
b1 = a;
}
while (a1 % b1 != 0)
{
int tmp = b1;
b1 = a1 % b1;
a1 = tmp;
}
printf("%d", b1);
return 0;
}
辗转相除法的原理
拿16和20来举例
a1=20 b1=16
那么20/16=1······4
16/4 =4······0
mod到了一个0,那说明找到了公约数,这个公约数为本次相除的除数
再举一个例子
a1=30 b1=25
30/25=1······5
25/5 =5······0
那么最大公约数为5