欧几里得算法又称辗转相除法用于计算两个非负整数a b的最大公约数 古希腊数学家欧几里得在其著作《The Elements》中最早描述了这种算法,所以被命名为欧几里得算法。
举例假如需要求 1997 和 615 两个正整数的最大公约数,用欧几里得算法,是这样进行的:
eg
1997 ÷ 615 = 3 (余 152)
615 ÷ 152 = 4(余7)
152 ÷ 7 = 21(余5)
7 ÷ 5 = 1 (余2)
5 ÷ 2 = 2 (余1)
2 ÷ 1 = 2 (余0)
至此,最大公约数为1
利用c语言实现
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d%d",&a,&b);
if(a<b)//输入两个值后利用if条件语句 让a是大的那个数
{
c = a;
a = b;
b = c;
}
while(b != 0)//利用while循环完成欧几里得算法 当b为0时结束
{
c = b;//储存b的值
b = a%b;//取a除以b的余数
a = c;//让a等于原先b的值
}
printf("%d",a);//即为最大公约数
return 0;
}
11.5