Problem 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 )
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)
Output
For each testcase, output an integer representing the factorial of Q modulo P.
Sample Input
1 1000000007
Sample Output
328400734
Source
2019 Multi-University Training Contest 3
Recommend
chendu   |   We have carefully selected several similar problems for you:  6613 6612 6611 6610 6609 
代码:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<vector>
#include<cmath>typedef long long ll;
using namespace std;
int prime[10000005];
bool vis[10000005];
int cnt =0;
void erla() {memset(vis,false,sizeof(vis));memset(prime,0,sizeof(prime));for(int t=2; t<=10000003; t++) {if(!vis[t]) {prime[cnt++]=t;}for(int j=0; j<cnt&&t*prime[j]<=10000003; j++) {vis[t*prime[j]]=true;if(t%prime[j]==0) {break;}}}
}
inline ll ksc(ll x,ll y,ll mod)
{return (x*y-(ll)((long double)x/mod*y)*mod+mod)%mod;
}
ll ksm(ll x,ll y,ll mod)
{ll ans=1;while(y){if(y&1){ans=ksc(ans,x,mod);}x=ksc(x,x,mod);y>>=1;}return ans;
}
bool isprime(ll x)
{for(int t=0;t<cnt&&prime[t]<x;t++){if(x%prime[t]==0){return false;}}return true;
}
int main()
{int T;cin>>T;erla();while(T--){ll n;scanf("%lld",&n);ll ans=1;for(ll t=n-2;t>=2;t--){if(isprime(t)){break;}ans=ksc(ans,ksm(t,n-2,n),n);//cout<<ans<<endl;
        }printf("%lld\n",ans);}    return 0;
}

转载于:https://www.cnblogs.com/Staceyacm/p/11265302.html

HDU-6608-Fansblog(威尔逊定理+快速乘)(多校)相关推荐

  1. hdu 6608 Fansblog 威尔逊定理+大数阶乘取模

    传送门 题意:给出一个质数P,找出小于P的最大的质数N,求出N的阶乘模P.(P∈[1e10,1e14]) 思路:威尔逊定理:一个数n若是质数, 则有 (n−1) ! ≡ n−1mod n. 于是可以先 ...

  2. HDU 6608 FansBlog(粉丝博客)(MillerRabin算法+威尔逊算法)

    Farmer John keeps a website called 'FansBlog' .Everyday , there are many people visited this blog.On ...

  3. 威尔逊定理 ---- [hdu-6608] Fansblog 威尔逊定理 质数的密度分布 快速乘优化快速幂防止中间爆longlong

    题目链接 题目大意:就是给你一个质数P∈[2,1e14]P\in[2,1e14]P∈[2,1e14]求一个质数Q<PQ<PQ<P解出Q!modPQ!modPQ!modP 解题思路: ...

  4. 「hdu6608」Fansblog 威尔逊定理

    「hdu6608」 Fansblog 今天回顾之前多校联赛的题目:Fansblog ,发现一件有趣的事情,快速积的时间复杂度,比普通*快多了,刚才一直Tle 在用了普通*,卧槽这也能T,当然也有乘法爆 ...

  5. HDU 6608 Fansblog——————大素数检测

    Fansblog 点击题目查看题面 点击这里也可以 Source 2019 Multi-University Training Contest 3 给你一个素数PPP 让给你求最接近P的素数QQQ 输 ...

  6. HDU 6608 Fansblog(随机素数测试+思维)

    传送门 不得不说这种倒着除回去的想法真的是太绝了. 至于大数的素性测试,也是板子,没什么好说的. #include<bits/stdc++.h> #define int long long ...

  7. HDU 6608 [2019 Multi-University Training Contest 3]

    Fansblog Problem Description Farmer John keeps a website called 'FansBlog' .Everyday , there are man ...

  8. 三个重要的同余式——威尔逊定理、费马小定理、欧拉定理 + 求幂大法的证明

    一.威尔逊定理 若p为质数,则 p|(p-1)!+1 亦:(p-1)! ≡ p-1 ≡ -1(mod p) 例题: HDU 2973 YAPTCHA (威尔逊定理及其逆定理) 解题报告见http:// ...

  9. 【HDU 6608】Fansblog(威尔逊定理+逆元+快速乘+快速幂)

    题目:点击打开题目链接 题意:输入一个素数 P,找出 P 的前一个素数,并求出 ! mod P的值.(1e9≤ P ≤1e14) 思路: 1.首先找出Q.因为自然数是由素数.合数.1和0组成的,并且数 ...

最新文章

  1. macos 全局快捷键 打开 iterm_MouseInc – 完全免费的全局鼠标手势增强工具 | 马小帮...
  2. 校招容易踩雷?这份“避雷针”指南拿走不谢
  3. Android三个Version的作用
  4. visual studio 2017 和qt 编译 bitcon源代码
  5. python如何自动打印_利用Python每天自动打印练习题
  6. opencv24-直方图比较
  7. Java回文数.如12321,123454321(5个数)
  8. 苹果在中国设立首个App设计开发加速器
  9. layui框架的优缺点
  10. 执行计算机查错程序,计算机 每次启动过程中总会执行磁盘检查CHKDSK,什么问题???怎么处理??...
  11. 火山引擎战略初现,字节跳动打造To B服务双引擎?
  12. WCF BasicHttpBinding 安全解析(3)默认安全设置(IIS宿主)
  13. 月薪11.5K 土木人零基础转行软件测试工程师,他都经历了什么?
  14. 电脑查询ip地址的方法,第一种最为简单
  15. 简单hbase java,Hbase 简单java API 操作
  16. SQL:postgresql查询、删除名字中包含某些字段的视图
  17. 利用BIRT ReportEngine API开发报表
  18. 光纤通信(邱昆、王晟版)课后答案
  19. 读书:编码——隐匿在计算机软硬件背后的语言上
  20. 英国内政部(Home Office)间谍机构(spy powers)假装它是Ofcom咨询中的一名私人公民1525446049260...

热门文章

  1. CSS转换动画与移动web
  2. java.lang.IllegalArgumentException: Not an entity: class
  3. arm linux源更新,[Linux] - Manjaro ARM 系统配置(更新镜像源,安装 Docker 和 Dotnet Core)...
  4. 分形几何python代码_Python, Cython绘制美妙绝伦的Mandelbrot集, 曼德博集分形图案
  5. oracle的空间字段、空间函数,空间数据类型
  6. 使用MMDetection训练自己的数据集
  7. 提示:Run-time error ‘339’:Cmponent 'MSCOMCTL.OCX'or one of its dependent..........的时候该怎么办?
  8. Kali Linux入门教程(非常详细)从零基础入门到精通,看完这一篇就够了。
  9. 【超全超详细】2W字零基础黑客学习路线,知识体系(附学习路线图)
  10. 《青山翠影》玖 独行的时代 | 去程归程