数论
_-Limerence-_
超级蒟蒻的OIer。
展开
-
利用费马小定理判断一个大整数是否为素数
利用费马小定理判断一个大整数是否为素数这是一篇关于一个显而易见的结论的文章,请理解的同学不要水我。大家应该都知道费马小定理是个啥:其中a为整数且p为质数,在此就不证明了,对此感兴趣的同学可以去找下度娘。到这里神犇的你显然理解了如何利用定理来判断素数了当我们判断一个整数n的时候,可以枚举a判断定理是否成立,只要对于任何一个a定理不成立,n显然就不是素数此法可以用来判断少量的较大的素数,...原创 2018-10-15 22:35:36 · 3509 阅读 · 0 评论 -
数论学习笔记1——二进制算法求GCD
数论学习笔记1——二进制算法求GCD又是一篇水解。首先显然大家都知道如何用辗转相除法求最大公约数,其原理就是gcd(x,y)=gcd(x,y-x)既然大家都知道我在这里就不证明了贴下一行代码:inline ll gcd(ll x,ll y){ return !y?x:gcd1(y,x%y);}但强大的你怎能止步于此,定要优化一下,其实原理也很简单 就是不断地除2我们考虑当x=...原创 2018-10-22 22:08:51 · 578 阅读 · 0 评论 -
数论学习笔记2——快速幂取模
数论学习笔记2——快速幂取模大佬肯定都是暴力循环乘出来的。咳咳,考虑指数n在二进制下第A1Aj下为1,那么显而易见~ mn= ∏i=1jm\prod_{i=1}^jm∏i=1jm(1<<Ai)由低位开始向前递推出每一位的m(1<<Ai)取模后的值,累乘取模。贴下代码:typedef long long ll;ll fastpow(ll x,ll y,ll mo...原创 2018-10-23 22:48:43 · 275 阅读 · 0 评论