求最大公约数和最小公倍数

Posted ldxsuanfa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求最大公约数和最小公倍数相关的知识,希望对你有一定的参考价值。

非常easy的数学问题。只是大家是否可以准确实现?

求最大公约数(greatest common divisor)的方法:

一、辗转相除

①设有两个正整数i、j。 且i>j;

②计算c=i%j。

③若c等于0,则j是i和j的最大公约数;若c不等于0,则i=j。j=c。

④反复②③直到求得最大公约数;


二、相减法

①设有两正整数i、j。

②若i等于j,则i或j就是两数的最大公约数;

③若i>j,i=i-j ;否则,j=j-i。

④反复②③直到得到最大公约数


三、暴力枚举

①设有两正整数i、j。

②如果i<j,令k=i,

③i。j分别对k求余,若余数都为0,则k为i、j最大公约数;否则k--,继续运行③,直到求出两数最大公约数;


求最小公倍数(least common multiple)的方法:

一、暴力枚举

①设有正整数i,j。最好还是设i>j。

②令k=i;

③k分别对i。j求余,若余数均为零,则k为i。j的最小公倍数。否则令k+=i。反复③,直到求出最小公被数;


二、依据最大公约数和最小公倍数的关系求解

LCM(i,j) = i*j / GCD(i,j)。

两正整数的最小公倍数等于两数的积除以两数的最大公约数,最大公约数可以由前面的公式计算;




以上是关于求最大公约数和最小公倍数的主要内容,如果未能解决你的问题,请参考以下文章

编写两个函数,分别求最大公约数和最小公倍数python

用python语言求两个数的最大公约数和最小公倍数

python求最大公约数和最小公倍数

求两个非负整数的最大公约数和最小公倍数python

C语言函数编写,求两个整数的最大公约数和最小公倍数

C语言求两个数的最大公约数和最小公倍数代码,为啥这里输出最大公约数的会输出两遍,初学者求详细解答