
数论
han_hhh
这个作者很懒,什么都没留下…
展开
-
HDU 1124 Factorial 【数论】
看到题目是求零的个数,0是2*5得到的,直接想到的是求2的个数和五的个数的最小值,但是超时了 正确做法(借鉴): 算数基本定理:任何一个大于1的自然数,都可以唯一分解成有限个质数的乘积 N!=1*2*3*4*5*6*7*……*n=1*2*3*2^2*2*3*…… 所以:2的个数一定比五多,所以最后只算五的个数就好,但是普通的算法依然超时 正确做法是直接求5的倍数。 例:50! 可以整...原创 2019-06-30 12:53:27 · 154 阅读 · 0 评论 -
费马小定理
费马小定理: 假设p为质数,a为与p互质的数,则a^(p-1)(mod p)=1 例:计算2^100%13。 在该例子中,p=13,a=2,因为2^12(mod13)=1,所以变形2^100,使得他与2^12有关系。变形如上 ...原创 2019-06-30 21:35:54 · 479 阅读 · 0 评论 -
数论
1.快速幂: Calculate R:= a ^ n mod m #include<stdio.h> typedefunsignedlonglongULL; //快速模幂计算函数 ULLpowermod(ULLa,ULLn,ULLm) { ULLres=1; while...转载 2018-03-01 11:50:56 · 184 阅读 · 0 评论 -
HDU 4704 Sum【费马小定理+快速幂】
题意:把n分成若干个数相加有几种分法。 1、把n分成若干个数:类似排列组合问题,把n个数分成若干个数,在n个数中间插板,有n-1个空位,一共2^(n-1)种分法 2、降幂:题目中最后mod(10^9+7),10^9+7是素数。与费马小定理相联系 前提:m是质数 化简: 费马小引理: 所以: 3、还需要用到快速模幂 #include<iostream> #include...原创 2019-07-01 09:51:03 · 138 阅读 · 0 评论