![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数学
文章平均质量分 54
曼切斯特的流氓
007
展开
-
位运算应用
将b拆解为2进制形式,复杂度变为log级别。原创 2023-06-02 22:18:16 · 197 阅读 · 0 评论 -
约数相关习题
直接求每个数的约数难求,因为涉及质因数分解,然后利用性质,非常麻烦,但是求每个数的倍数好求,所以我们枚举i求出有多少数字是i的倍数即可。原创 2023-06-02 18:05:55 · 149 阅读 · 0 评论 -
阶乘分解(质数筛+枚举质数)
这道题,我们没办法求出N!,因为N范围是1e6,1e6的阶乘太大了,肯定超long long,所以我们调整枚举顺序,不去枚举N!中每个数进行质数分解,我们先求出N范围内的所有质数,然后枚举每一个质数,在N阶乘中的幂,关键在于这个在N阶乘中幂怎么求出来。原创 2023-06-02 15:50:06 · 216 阅读 · 0 评论 -
质数距离(筛法)
直接用筛法无法求到1e9以内的质数,但是题目问的区间范围不超过1e6,所以我们求出sqrt(1e9)以内的质数,然后根据倍数关系,筛掉区间内的合数。(2):当m不可以整除n时,s=m%n>=1,(m+n-1)/n=k+(s+n-1)/n>=k+1。(1):当m可以整除n时,s=m%n=0,(m+n-1)/n=k+(s+n-1)/n=k。注意:上取整,数学中可以写为 (m+n-1)/n。,最后存放到数组里,遍历一遍即可得出答案。(k=m/n后的正整数)原创 2023-06-02 00:42:33 · 141 阅读 · 0 评论 -
阶乘末尾0相关问题
一个数的因数有多少个5,显然是n/5个5,但是这样算会放在阶乘展开会丢解,eg50!5 其中50和25可以继续展开为5x10和5x5那么50和25分别存在两个5的倍数,所以n/5后还要利用他的结果继续在除以5一直除干净为止。根据题目数据 m最大为1e5,那么该数字一定小于5e5,因为5e5除以5等于1e5,所以枚举0到5e5求出满足的提解。首先要知道两个数相乘能够产生0,那么一定是2的倍数与5的倍数相乘 eg:2x5=10,4x5=20,4x15=60。=5x4x3x2x1 有1个五的倍数,2个2的倍数。原创 2023-04-26 16:35:47 · 118 阅读 · 0 评论 -
完全平方数和质因子
分析:既然要求b最小,那么我只需要将a进行质因数分解,找出那些质因子的幂为奇数个,将这些质因子相乘在一起即为b的结果。首先一个数字一定可以质因数分解开,如果质因数乘积分解开后,他的幂指数均为偶数,那么这个数字一定是完全平方数。eg: 12=2^2 * 3 那么将12*b转为最小完全平方数为36。给出一个数a找出一个数b 要求a*b=一个完全平方数,并且b最小。转为 2^2 * 3 * 3 =36需要一个3。原创 2023-03-24 20:14:18 · 174 阅读 · 0 评论 -
不同进制转换
进制转换原创 2022-06-17 16:59:54 · 94 阅读 · 0 评论 -
组合数学(递推)
组合数学公式组合数学性质组合数学递推性质我们利用组合数学递推公式,建立一个数组a那么可以得出:a(i,j)=a(i-1,j-1)+a(a-1,j)在初始化时a(0,0)=1 (利用组合数学公式0!=1)通过双层for循环可以推出Cnm代码实现f[0][0]=1; for(int i=1;i<=1e4;i++)//注意i从1开始 { for(int j=0;j<=100;j++) //注意j从0开始 {原创 2022-01-20 22:54:55 · 269 阅读 · 0 评论 -
差分数组(详解+例题)
差分数组定义:所谓差分数组,就是将一个数组中后一项减去前一项形成新的数组eg:原数组 5 4 7 2 4 3 1进行后一项减去前一项,第一项不变5 、(4-5) 、(7-4)、(2-7)、(4-2)、(3-4)、(1-3)差分数组:5 -1 3 -5 2 -1 -2性质:最主要的性质:差分数组求前缀和结果等于原数组接着用上面的样例对差分数组求前缀和5、4、7、2、4、3、1用途:差分数组最主要用于对数组部分区间进行同时加上或减去一个数举例原数组:原创 2021-07-06 15:59:13 · 3387 阅读 · 2 评论 -
质因数,约数个数、约数和
质因数质因数:一个数的约数为质数,则这个约数称为质因数首先我们了解一下算数基本定理算数基本定理:(欧几里得最早提出 Respect)任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积N=P1^a1xP2 ^a2xP3 ^a3…Pn ^an,这里P1<P2<P3…<Pn均为质数,其中指数ai是正整数。举个例子12=2^2x3(质因数为2、3)360=2 ^3×3 ^2×5 ^1(质因数2、3、5)不要把约数和质因数搞混哦!,12的约原创 2021-04-25 21:19:13 · 2096 阅读 · 1 评论 -
最大公约数(欧几里得--辗转相除法)
辗转相除法给出两个数x,y求出最大公约数,辗转相除法主要运用了这样一条性质当x>=y时,x和y的最大公约数等于y和x%y的最大公约数举个例子(最大公约数 Greatest Common Divisor)简称gcb求75和54的最大公约数gcb(75,54)=gcb(54,75%54)=gcb(54,20)gcb(54,20)=gcb(20,54%20)=gcb(20,14)gcb(14,6)gcb(6,2)gcb(2,0)最大公约数为2简单证明算法正确性设两个数原创 2021-04-25 11:41:43 · 588 阅读 · 0 评论 -
质数检验(埃拉托色筛选法、根号x复杂度算法)
单次复杂度为O(根号x)一个合数(非质数)x,一定可以分解为p*q,其中p小于等于根号x,q大于等于根号x举例:16=2x8,2<4,8>48=2x4,2<3倍根号二,4>3倍根号二通过上述性质,可以不在遍历从2~x-1,而是可以从2 ~ 根号x,这样复杂度就变为O(根号x)为什么呢?因为只要找到一个数的最小因数,且最小因数不为1,这样只要找到一个数也就是找到p,就可以断定这个数不是质数!一点小优化每次for循环遍历时,我们将i++,变为i+=2,原创 2021-04-24 22:10:49 · 892 阅读 · 0 评论