2016.1.26

让我们来研究一下关于n!在mod p下的性质,当然这里p是质数。

首先n!=a*pe,其中p不可整除a。我们现在来做两件事情,求e和a mod p.

显然,n/p表示[1,n]中p的倍数的个数,我们把[1,n]所有的数都除以p,那么剩余的数里还是p的倍数的数在除之前一定至少含有因子p2,那么在除以p之后的序列里p的倍数的个数就是n/p2

如此下去,我们便可以知道,n!所含因子p的个数e=n/p+n/p2+n/p3+……

这样算出来的时间复杂度显然是O( logp(n) ).

然后再说a mod p怎么做。

显然[1,n]中非p倍数模p的余数成周期性,如下所示:

1,2,3,…,p-1,1,2,…,p-1,1,2,…,p-1,1,2,…,n mod p(最后一个周期可以不完整)

那么,就有a=(p-1)!(n/p) * (n mod p)!.

根据威尔逊定理,(p-1)!≡-1(mod p).

于是就有a≡(-1)(n/p) * (n mod p)! (mod p)

这下好办了吧

最新文章

  1. Java内部类final语义实现
  2. dict与list的in 操作的速度
  3. ZHA profile与ZLL profile的一个例子
  4. 【linux编程】linux中HZ和Jiffies的关系
  5. 设置secureCRT支持中文
  6. Android进程间通信之LocalSocket通信
  7. 19SpringMvc_在业务控制方法中收集List集合中包含JavaBean参数
  8. Tomcat7集群扩展session集中管理,tomcat-redis-session-manager使用
  9. MFC 学习 之 状态栏的添加
  10. [jobdu]二叉树的镜像
  11. winpcap 发送接收速率
  12. Python爬虫第一步
  13. kubuntu/ubuntu下安装fcitx输入法
  14. svn代码版本管理
  15. win7系统u盘安装过程
  16. Qt setstylesheet指定窗口
  17. 学习Nodejs:《Node.js开发指南》微博项目express2迁移至express4过程中填的坑
  18. TCP/IP 笔记 - TCP连接管理
  19. akka cluster sharding
  20. Git安装与使用

热门文章

  1. jboss eap开启https协议
  2. RoseRT 建模学习
  3. BCG界面库下的Windows8 UI界面样式www.webui8.com
  4. Linux提供两个格式化错误信息的函数
  5. JavaScript基础--内部类(九)
  6. ACM 杂题,思路题 整理
  7. IOS 验证码
  8. HTMl5-canvas 入门级复习
  9. 关于VC工程的组成
  10. OpenSSL - 网络安全之数据加密和数字证书