Fansblog


Description

Farmer John keeps a website called ‘FansBlog’ .Everyday , there are many people visited this blog.One day, he find the visits has reached P , which is a prime number.He thinks it is a interesting fact.And he remembers that the visits had reached another prime number.He try to find out the largest prime number Q ( Q < P ) ,and get the answer of Q! Module P.But he is too busy to find out the answer. So he ask you for help. ( Q! is the product of all positive integers less than or equal to n: n! = n * (n-1) * (n-2) * (n-3) *… * 3 * 2 * 1 . For example, 4! = 4 * 3 * 2 * 1 = 24 )

Standard Input

First line contains an number T(1<=T<=10) indicating the number of testcases. Then T line follows,each contains a positive prime number P (1e9≤p≤1e14)

Standard Output

For each case output a line with one integer, means the factorial of Q modulo P for one line.

Sample Input

1 1000000007

Sample Output

328400734

emmm。。。。。。。。。。。。

首先,Q!Q!Q! 是肯定不能从1乘过去的,也没有方法可以正着算过去。。。
于是聪明的zzy小公举就想,可不可以倒着推呢。
我们知道,P!modP=0P! mod P=0P!modP=0,好像可以从这里入手耶。对于P取模的话,其实也只需要在P!P!P!这里乘好多逆元~
但是P!modP=0P! mod P=0P!modP=0。。。怎么乘也不行啊。。。
于是小公举就入手了数论四大玄学定理中的威尔逊定理!(但他比赛的时候并没有入手,居然自己瞎推推出来了神奇的Q!=p−(Q+1)−1(Q+2)−1...(p−2)−1(p−1)−1Q!=p-(Q+1)^{-1}(Q+2)^{-1}...(p-2)^{-1}(p-1)^{-1}Q!=p−(Q+1)−1(Q+2)−1...(p−2)−1(p−1)−1)
由此可见,瞎推还是很重要的,嗯。
那么传说中的威尔逊定理呢?
他告诉我们:

(p−1)!≡−1(modp)( p -1 )! ≡ -1 ( mod p )(p−1)!≡−1(modp)

于是我们就可以这么写,,然后这么算出来。。

Q![(Q+1)(Q+2)...(p−1)]=p−1(modp)Q![(Q+1)(Q+2)...(p-1)]=p-1(mod p)Q![(Q+1)(Q+2)...(p−1)]=p−1(modp)

Q!(Q+1)(Q+2)...(p−2)=(p−1)∗(p−1)−1=1Q!(Q+1)(Q+2)...(p-2)=(p-1)*(p-1)^{-1}=1Q!(Q+1)(Q+2)...(p−2)=(p−1)∗(p−1)−1=1

Q!=1∗(Q+1)−1(Q+2)−1...(p−2)−1Q!=1*(Q+1)^{-1}(Q+2)^{-1}...(p-2)^{-1}Q!=1∗(Q+1)−1(Q+2)−1...(p−2)−1

由于P和Q不会离很远,于是直接这么乘,用大数乘法就好了~

【HDU6608 Fansblog】求很大很大的数的阶乘相关推荐

  1. 大四阶段的社会实践的主要目的是_疫情当前,大三大四的学生“很惨”?大一大二的学生也别松懈...

    大四毕业生不容易 这次疫情对于高校学生而言,可以说是各有各的难处,"这届毕业生很惨"更是屡上热搜.不可否认,大四毕业生确实很不容易,论文答辩.毕业.求职就业等都受到了影响,虽然有困 ...

  2. 计算机大三大四学什么,为什么大学期间很少看到大三大四的同学,他们都在做什么?...

    原标题:为什么大学期间很少看到大三大四的同学,他们都在做什么? 网友一: 有的忙于实践学习. 在大学期间,除了课堂学习之外,每一个专业都会安排有诸多实习环节,有认知实习.专业实习.社会实践以及各类操作 ...

  3. Elasticsearch7.X中的字段类型keyword插入很长的大段内容后,报字符超出异常

    一.问题描述 本文操作的ES版本是Elasticsearch7.13 设置为keyword类型的字段,插入很长的大段内容后,报字符超出异常,无法插入. post 361323个字符的文档,报错如下: ...

  4. 很大、大得离谱的数。。。

    很大.大得离谱的数... 先来定义超运算:a[n]b,n为正整数 其中,a称为底数,b为超指数,n为阶数. 递归定义为: a[1]b = a + b;//规定超1阶运算,相当于a+b个1 a[n]b ...

  5. MATLAB教程_11方程式求根_台大郭彦甫课程笔记

    MATLAB教程_11方程式求根_台大郭彦甫课程笔记 一.符号寻根法(解析法) 1.使用sym()或syms()创建符号变量 2.符号根查找:solve() 3.解多重方程 4.求解用符号表示的方程 ...

  6. FPGA求最大值和次大值

    转载:https://www.cnblogs.com/sea-wind/p/8384596.html 0. 题目 在FPGA上实现一个模块,求32个输入中的最大值和次大值,32个输入由一个时钟周期给出 ...

  7. O(n)复杂度求区间第K大

    O(n)复杂度求区间第K大 描述 给你一个数组,O(N)复杂度找出其中第K大的数. 输入 第一行包括两个数,N,K,分别代表数组大小,以及你应该找出第K大的数. 接下来N行,每行包括一个数. ​ 输出 ...

  8. 2014百度面试题目---“求比指定整数大且最小的不重复数”解答

    题目:给定任意一个正整数,求比这个数大且最小的"不重复数","不重复数"的含义是相邻两位不相同,例如1101是重复数,而1201是不重复数. 代码: #incl ...

  9. 可持久化Trie+堆优化 OR Trie树上求XOR第K大 ---- P5283 [十二省联考2019]异或粽子

    题目大意 题目大意: 考虑先做个 prefix xor 前缀异或bi=⨁j=1iaj(1≤i≤n)b_i=\bigoplus_{j=1}^{i}a_j(1\leq i \leq n)bi​=j=1⨁i ...

  10. C++实现求数组中前K大的数

    参考:http://blog.csdn.net/xiaoding133/article/details/8037086 C++实现求数组中前K大的数,即求数组的最大的k个数 //数组中求最大的k个数 ...

最新文章

  1. JS原型与原型链终极详解
  2. HashMap实现相同key,对value的操作
  3. .Net Discovery系列之十二-深入理解平台机制与性能影响(下)
  4. 使用Socket及ServerSocket创建简单的服务器
  5. 使用Apache Flume抓取数据(1)
  6. SAP CRM Fiori应用里的note section
  7. python-字符串与字节-0222
  8. WORD给文档设置密码保护?
  9. 控制系统计算机仿真源码,控制系统计算机仿真-实验五.doc
  10. 北京44岁程序员失业,感叹:编程估计没戏了,想去卖煎饼果子点背锅走人~
  11. decltype关键字
  12. 新代系统PLC编程软件 新代PLC编程软件中文版梯形图
  13. 我有一百种方法让你的Excel连上数据库
  14. 小菜编程成长记(十一 无熟人难办事?——聊设计模式迪米特法则)
  15. matlab 摄动波浪理论,等于波浪论文,关于MATLAB在实验室波高采集中的应用相关参考文献资料-免费论文范文...
  16. ArcGIS Server Image 扩展模块
  17. C语言及数据结构课程设计:超市信息管理系统
  18. 三十分钟理解:矩阵Cholesky分解,及其在求解线性方程组、矩阵逆的应用
  19. OpenCV python去除图片水印
  20. 图像去噪,深度学习去噪,普通方法

热门文章

  1. Serverless开源框架对比
  2. 迈阿密大学的计算机系咋样,美国迈阿密大学计算机专业本科.pdf
  3. oracle000936,奇怪的ORA-000936错误
  4. git中merge分支到master产生冲突
  5. bzoj4372. 烁烁的游戏【动态点分治】
  6. uv视差检测障碍物_社区组成–视差效果,节拍检测,精美游戏和艺术研究
  7. Windows下通过注册表修改某个类型文件的默认打开方式和文件图标
  8. 大数据技术之Flume
  9. NOIP2018提高组 货币系统
  10. 编程小白须知,阿里、百度、华为这些大厂都用什么编程语言?别说不知道!