P4139 上帝与集合的正确用法

\(2^{2^{2^{\dots}}}\bmod p\)

卡最优解倒数第一祭。

带一下扩展欧拉定理就好了。

code:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath> using namespace std; const int wx=10000017; int isprime[wx],prime[wx],phi[wx];
int tot; inline long long read(){
long long sum=0,f=1; char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1; ch=getchar();}
while(ch>='0'&&ch<='9'){sum=(sum<<1)+(sum<<3)+ch-'0'; ch=getchar();}
return sum*f;
} void Euler_phi(){
memset(isprime,1,sizeof isprime);
phi[1]=1; isprime[1]=0;
for(int i=2;i<=10000000;i++){
if(isprime[i]){
prime[++tot]=i;
phi[i]=i-1;
}
for(int j=1;j<=tot&&i*prime[j]<=10000000;j++){
isprime[i*prime[j]]=0;
if(i%prime[j]==0){
phi[i*prime[j]]=phi[i]*prime[j];
break;
}
else phi[i*prime[j]]=phi[i]*phi[prime[j]];
}
}
} long long ksm(long long a,long long b,long long mod){
long long re=1;
while(b){
if(b&1)re=re*a%mod;
a=a*a%mod;
b>>=1;
}
return re;
} long long work(long long mod){
if(mod==1)return 0;
return ksm(2,work(phi[mod])+phi[mod],mod);
} signed main(){
// for(long long i=1;i<=430000000;i++);
int T=read(); Euler_phi();
while(T--){
long long p=read();
printf("%lld\n",work(p));
}
return 0;
}

扩展欧拉定理【洛谷P4139】 上帝与集合的正确用法的更多相关文章

  1. 洛谷 P4139 上帝与集合的正确用法 解题报告

    P4139 上帝与集合的正确用法 题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做"元". 第二天, 上帝创造了一个新 ...

  2. 洛谷P4139 上帝与集合的正确用法 [扩展欧拉定理]

    题目传送门 上帝与集合的正确用法 题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”. ...

  3. 题解-洛谷P4139 上帝与集合的正确用法

    上帝与集合的正确用法 \(T\) 组数据,每次给定 \(p\),求 \[\left(2^{\left(2^{\left(2^{\cdots}\right)}\right)}\right)\bmod p ...

  4. 洛谷 P4139 上帝与集合的正确用法

    题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容 ...

  5. 洛谷P4139 上帝与集合的正确用法 拓欧

    正解:拓展欧拉定理 解题报告: 首先放上拓欧公式? if ( b ≥ φ(p) )  ab ≡ ab%φ(p)+φ(p)(mod p)else ab≡ab mod φ(p) (mod p) 首先利用扩 ...

  6. [洛谷P4139]上帝与集合的正确用法

    题目大意:多次询问,每次给你$p$询问$2^{2^{2^{\dots}}}\bmod p$ 题解:扩展欧拉定理,求出$\varphi(p)$即可.因为$2^{2^{2^{\dots}}}>> ...

  7. 【洛谷】P4139 上帝与集合的正确用法

    题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的:  第一天,上帝创造了一个世界的基本元素,称做“元”.  第二天,上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容 ...

  8. Luogu P4139 上帝与集合的正确用法【扩展欧拉定理】By cellur925

    题目传送门 题目中的式子很符合扩展欧拉定理的样子.(如果你还不知扩展欧拉定理,戳).对于那一堆糟心的2,我们只需要递归即可,递归边界是模数为1. 另外,本题中好像必须要用快速乘的样子...否则无法通过 ...

  9. luogu P4139 上帝与集合的正确用法(扩展欧拉定理)

    本蒟蒻现在才知带扩展欧拉定理. 对于任意的\(b\geq\varphi(p)\)有 \(a^b\equiv a^{b\ mod\ \varphi(p)+\varphi(p)}(mod\ p)\) 当\ ...

  10. Luogu P4139 上帝与集合的正确用法

    题目链接:Click here Solution: 这道题就考你会不会扩展欧拉定理,根据扩展欧拉定理可知 \[ a^b \equiv a^{(b\,mod\,\varphi(p))+\varphi(p ...

随机推荐

  1. file_get_contents无法请求https连接的解决方法 php开启curl

    file_get_contents无法请求https连接的解决方法 方法1: PHP.ini默认配置下,用file_get_contents读取https的链接,就会如下错误: Warning: fo ...

  2. windows 查看端口被占用进程

    查看占用63243是谁 C:\Users\Administrator>netstat -aon|findstr "63243" TCP 172.27.33.11:63243 ...

  3. adf笔记

    1>jsf页面js调试,手动添加debugger调试 方案:在页面中添加debugger,然后打开“开发者工具”(必须打开),直接运行页面自动跳转到debugger处. 2>jdevelo ...

  4. RAW编程接口

    LWIP移植好之后,就要使用它提供的API接口来编写程序.

  5. mybatis 传参是 list<string> 的注意事项

    <!--付款 批量 修改账单状态--><update id="editbillpayALL" parameterType="java.util.List ...

  6. spring-boot-maven-plugin插件作用

    转自:http://blog.csdn.net/hotdust/article/details/51404828 OM 文件中添加了“org.springframework.boot:spring-b ...

  7. mybatis-generator命令行生成代码

    目录文件如下: generator.xml文件如下: <?xml version="1.0" encoding="UTF-8"?> <!DOC ...

  8. left join、right join、inner join、full join

    转自:某一网友 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join ...

  9. 大前端涉猎之前后端交互总结1: 软件架构与PHP搭建

    1 软件架构与PHP搭建 1.1 HTTP服务器(web服务器) 即( web服务器 )网站服务器,主要提供文档(文本.图片.视频.音频)web浏览服务,一般安装Apache.Nginx服务器软件. ...

  10. HDU 6201 transaction transaction transaction (树形DP)

    题意:给定一棵树,每个点有一个点权,每条边也是,找一条路径,问你 T-S-sum,T表示路径的终点的权值,S表示路径始点的权值,sum表示从S到T的边权和. 析:把这一条路径拆开来看,那么就是必然是从 ...