一、关于最小公倍数和最大公约数:
相关总结之前做过:链接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得倍数,进行标记。在后续的判断中,只要在先前中没有剔除得,都是素数,但是要剔除素数得倍数,循环操作;