数论
一.素数
v
素数(又称质数)就是除了1和本身以外没有其他的因子的大于1的正整数.
v
100以内的素数有{2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97}
1.筛选法 生成素数表 【
埃拉托斯特尼筛选法】
当需要求某一区间[2,n]内的所有素数时,可以从2开始,对于当前素数p,将p^2后所有p的倍数筛去
每个数最多被筛去一次
每次找到下一个没有被筛到的数就是一个素数
时间复杂度为O(nlgn)
2.开根判断素数法
二.最大公约数 与 最小公倍数
gcd:greatest common divisor
lcm:lowest common multiple
1.gcd求法
欧几里德算法 即 辗转相除法
另一种 (二进制算法)
2.lcm求法
两项相乘 再 除以这两项的gcd
2.开根判断素数法
二.最大公约数 与 最小公倍数
gcd:greatest common divisor
lcm:lowest common multiple
1.gcd求法
欧几里德算法 即 辗转相除法
另一种 (二进制算法)
若a=b, gcd(a,b)=a
若a和b均为偶数, gcd(a,b)=2*gcd(a/2,b/2)
若a为偶数, b为奇数, gcd(a,b)=gcd(a/2,b)
若a和b均为奇数, gcd(a,b)=gcd(a-b,b)
不需要除法, 适合大整数
2.lcm求法
两项相乘 再 除以这两项的gcd