#include<stdio.h>
#define N 2
int main()
{
int a[N] = {24,60};
if (a[0] / a[1] == 0)
{
a[0] = a[0] + a[1];
a[1] = a[0] - a[1];
a[0] = a[0] - a[1];
}
while (a[1])
{
int i=a[0],j=a[1];
a[0] = j;
a[1] = i % j;
}
printf("%d", a[0]);
return 0;
}
这个代码我使用了辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。在求解最大公约数的几种方法中,辗转相除法最为出名。辗转相除法是仍然在使用的历史最悠久的算法之一
例如,求(319,377):
∵ 319÷377=0(余319)
∴(319,377)=(377,319);
∵ 377÷319=1(余58)
∴(377,319)=(319,58);
∵ 319÷58=5(余29)
∴ (319,58)=(58,29);
∵ 58÷29=2(余0)
∴ (58,29)= 29;
∴ (319,377)=29。
29就是319和377的最大公约数。