重庆小鸭售后维修电话:求两面个数最大公约数和最小公倍数的算数是什么

来源:百度文库 编辑:高校问答 时间:2024/04/26 19:58:19
谢谢了

(1)最大公约数的求法:

假设求3与11,首先用11%3=2 ,再用3%2=12%1=0 ,即最后的1是最大公约数,又如3与2222%3=1;3%1=0;分析后即得算法!?

采用Euclid(欧几里得)辗转相除法
int gcd(int a,int b)
{
if(b==9) return a;
else return gcd(b,a%b);
}

(2)多个数的最大公约数的求法

先求前两个数的最大公约数e1,再求e1与第三个数的最大公约数。......依此类推,可求出多个数的最大公约数。

(3)两个数最小公倍数的求法

两个数值的积除于最大公约数即为最小公倍数。

最大公约数:
int MaxFactor(int x, int y, int& factor)
{
int min = x;
int max = y;
if(x != y)
{
if(x > y)
{
min = y;
max = x;
}
MaxFactor(min, max - min, factor);
}
else
{
factor = x;
}
return factor;
}

最小公倍数可由两个数相乘然后除以最大公约数

经典都是好算法.我喜欢递归算法.这是电脑水平,其它的是数学水平.不过数学水平还是重要些.

欧几里德算法