导航

最大公约数

Posted on 2022-10-06 14:29  20221301  阅读(9)  评论(0编辑  收藏  举报

什么是欧几里得算法

  • 欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数。应用领域有数学和计算机两个方面。计算公式gcd(a,b) = gcd(b,a mod b)。

  • 算法说明:

include <stdio.h>

int euclid(int i, int j);

int main(void){
int number1, number2;
printf("Please enter the number 1: \n");
scanf("%d", &number1);
printf("Please enter the number 2: \n");
scanf("%d", &number2);
printf("两者的最大公约数为: %d", euclid(number1,number2));
}

int euclid(int i, int j)
{
int a;
if ( i>j ){
a=i;
i=j;
j=a;
}/保证 i 小于等于 j/
while ( j%i != 0){/辗转相除/
a = j;
i = j%i;
j = a;
}
return i;
}

伪代码

开始
输入两个数m,n
比较两个数大小
在余数不为零时
用较大的数除以较小的数
再用出现的余数(第一余数)去除除数
余数为零时
输出最后的除数
结束

运行结果