费马小定理:假如p是质数,且gcd(a,p)=1,那么

A题HDU – 4704
首先是挡板法(隔板法),然后用
即可,高中数学范围不多叙述。
然后得到答案是
这题读入数据大
,就算快速幂也肯定TLE,所以用费马小定理,把数据规模降到int 范围内,时间复杂度降低
因为1e9+7是一个素数,(基本可以假设N-1不是1e9+7的倍数,这一点我没想到,所以没写出来。。。。)
所以可以(1e9+7)^N对(1e9+7-1)取余,以下是代码:
第二题:HDU – 1395

这个题目暴力求出答案:每此取余数即可
如果是偶数,直接跳出,奇数一定成立(证明听说要用欧拉函数,笔者最近在看数论方面的东西,奇数证明部分留个坑。)
第三题:HDU – 5750
这题关键是素数筛
在素数筛里面最快的就是O(N)的复杂度
用素数和题目中给的d相乘,可以得到一些n的含有d因子的数,然后选择合适的跳出条件(其实观察题目也可以发现,在许多情况下,非常容易跳出,因为样例中有好几个是0)
(以后不管什么题都用long long)
然后又被cin比scanf()慢坑了,改scanf
https://cn.vjudge.net/contest/#problem/A
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231874.html原文链接:https://javaforall.net
