C语言 辗转相除法 求最大公约数
- 如果B=0,那么A就是最大公约数
- B!=0,计算A/B的余数,让A=B,而B等于余数
演示:
A=12 B=18 remainder=12
A=18 B=12 remainder=6
A=12 B=6 remainder=0
A=6 B=0 remainder=0
A=6 B=0 over
#include <stdio.h>
int main()
{
int A, B, remainder;
A = 12;
B = 18;
while (B != 0)
{
remainder = A % B;
A = B;
B = remainder;
}
printf("GCD=%d", A);
return 0;
}
// 程序运行结果:GCD=6
// PS: A*B=GCD*LCM