最小公倍数&&最大公约数&&素数

一、关于最小公倍数和最大公约数:

相关总结之前做过:链接https://segmentfault.com/a/1190000018188261

当时对于数学推论浅尝辄止,这里再详细说说:

首先,最大公约数的找法又称作辗转相除取余法,其最基本的数学表达如下所示:

对于两个数字a,b,假若a>b;

所以存在a=b*n+r,其中n为整数,r相当于a/b得到的余数,也就是a%b;

假设,a,b的最大公约数为m,则r=a%b=a-b*n,其中a,b可被m整除,所以可知,r也必定可被m整除;

因此,a%b,a,b三者拥有相同的m,a,b的最大公约数求解就变成了b,a%b的最大公约数求解;

循环递归缩减范围,所以必定会有最小余数k,0两者,所以k为最大公因数;

扫描二维码关注公众号,回复: 8975992 查看本文章

其次,最小公倍数又建立最大公约数的基础之上:

假若a,b最大公约数为m,a=m*n,b=m*k;

若寻找a,b相同的最小倍数,不妨a*b=m*m*n*k;

此时可以发现m乘了两次,所以得最小公倍数为ab/m=m*n*k=m*f;

所以最小公倍数即为ab/m;

二、关于素数问题:

之前也做过相关的总结,链接https://segmentfault.com/a/1190000018190302

和最小公倍数和最大公约数类似,也具有相关的缩小范围来降低时间复杂度得操作;

本质上就是利用根号n作为分界点,来缩小了一半的判定条件,推导之前详细说过;

关于素数表,则是利用埃氏推导法发进行推理的。从2开始,剔除2得倍数,进行标记。在后续的判断中,只要在先前中没有剔除得,都是素数,但是要剔除素数得倍数,循环操作;

猜你喜欢

转载自www.cnblogs.com/songlinxuan/p/12264077.html