先百度贴个欧拉定理

由此可以得到降幂公式

第一个要求a和p互质,第二个和第三个是广义欧拉降幂,不要求a和p互质,但要求b和的大小关系。

那么有了这个公式先写个题目 bzoj3884

题意:求2^(2^(2^(2^(2^...)))) mod p的值

思路:这样子每次求p的欧拉函数,求解log(p)次左右p就变成1了,那么再往后结果都是0了。题解上写的很清楚。

贴个出题人的题解。

代码如下。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;ll ph(ll x)
{ll res=x,a=x;for(ll i=2;i*i<=x;i++){if(a%i==0){res=res/i*(i-1);while(a%i==0) a/=i;}}if(a>1) res=res/a*(a-1);return res;
}
ll quick_pow(ll a,ll b,ll mod)
{ll ans=1;while(b){if(b&1) ans=(ans*a)%mod;a=(a*a)%mod;b>>=1;}return ans;
}
ll f(ll p)
{if(p==1) return 0;ll k=ph(p);return quick_pow(2,f(k)+k,p);
}int main()
{int T;scanf("%d",&T);while(T--){ll p;scanf("%lld",&p);printf("%lld\n",f(p));}return 0;
}

那么再来一题

FZU 1759

思路:B很大,所以需要降幂,套一下公式求一下就行了。

#include <bits/stdc++.h>
#define ll __int64
#define mod 10000000007
using namespace std;
char a[1000006];
ll x,z;
ll quickpow(ll x,ll y,ll z)
{ll ans=1;while(y){if(y&1)ans=ans*x%z;x=x*x%z;y>>=1;}return ans;
}
ll phi(ll n)
{ll i,rea=n;for(i=2;i*i<=n;i++){if(n%i==0){rea=rea-rea/i;while(n%i==0)n/=i;}}if(n>1)rea=rea-rea/n;return rea;
}
int main()
{while(scanf("%lld %s %lld",&x,a,&z)!=EOF){ll len=strlen(a);ll p=phi(z);ll ans=0;for(ll i=0;i<len;i++)ans=(ans*10+a[i]-'0')%p;ans+=p;printf("%lld\n",quickpow(x,ans,z));}return 0;
}

欧拉降幂和广义欧拉降幂相关推荐

  1. 数学--数论--欧拉降幂和广义欧拉降幂(实用好理解)

    一般大佬会给你证明,而菜鸟会教你怎么使用. 先摆上公式: ab≡{abmodϕ(p)gcd(a,p)=1abgcd(a,p)≠1,b<ϕ(p)abmodϕ(p)+ϕ(p)gcd(a,p)≠1,b ...

  2. 数论一之定理证明——裴蜀/威尔逊/费马/扩展欧几里得/[扩展]欧拉/[扩展]中国剩余定理,欧拉函数,逆元,剩余系,筛法

    打死没想到会在H老师处学懂数论 同余,整除 模运算 埃式筛法 欧拉筛法 最大公约数和最小公倍数 辗转相除法 更相减损术 裴蜀定理 威尔逊定理 费马定理 同余等价类.剩余系.缩系 欧拉函数 欧拉定理 扩 ...

  3. 欧拉线性筛 与 欧拉函数 + 几道例题

    欧拉线性筛 生成素数表prime[]数组 const int maxn = 1e7+5; int prime[maxn]; int visit[maxn]; void Prime(){memset(v ...

  4. 【微分方程数值解】常微分方程(一)欧拉方法和改进欧拉方法(附python算例,封装类)

    欧拉方法与改进欧拉方法 一.算法原理 对给定微分方程 {y′=f(x,y)y(x0)=y0(1)\begin{cases} y' = f(x,y)\\ y(x_0) = y_0 \end{cases} ...

  5. 微分方程一维抛物热传导方程向前向后欧拉C-N格式二阶BDF格式MATLAB源码 显式欧拉,隐式欧拉,梯形公式,改进欧拉

    微分方程一维抛物热传导方程向前向后欧拉C-N格式二阶BDF格式MATLAB源码 显式欧拉,隐式欧拉,梯形公式,改进欧拉 五点差分,九点差分 差分格式,紧差分格式 直拍,只有pdf版方法说明 word版 ...

  6. 欧若拉用计算机谱子,欧若拉 _谱友园地_中国曲谱网

    <欧若拉>文本歌词 欧若拉 作词:施立 作曲:李天龙 演唱:张韶涵 制谱:孙世彦 神秘北极圈 阿拉斯加的山巅, 谁的脸 出现海角的天边? 忽然的瞬间 在那遥远的地点, 我看见 恋人幸福的光 ...

  7. 数学--数论--广义欧拉降幂(模板)

    未使用欧拉筛: 适用于较少次数计算的欧拉降幂. #include <bits/stdc++.h> #define ll long long using namespace std; ll ...

  8. The Preliminary Contest for ICPC Asia Nanjing 2019 B. super_log (广义欧拉降幂)

    In Complexity theory, some functions are nearly O(1)O(1), but it is greater then O(1)O(1). For examp ...

  9. 欧拉降幂及其扩展欧拉降幂

    欧拉降幂: 从公式来看,需要使用快速幂运算和欧拉函数 #include<bits/stdc++.h>using namespace std; typedef __int64 LL;cons ...

最新文章

  1. apt cyg 安装php,Cygwin的包管理器:apt
  2. 全站HTTPS简单实践
  3. java源码影视源码搭建教程_新版千月影视app源码+搭建教程
  4. php dns刷新,Windows DNS缓存自动刷新
  5. 解决eclipse刚启动卡死的问题~~~亲测有效~~
  6. jQuery lazyload
  7. iOS开发第三方篇——友盟的哪些坑
  8. Hadoop学习笔记(二):MapReduce的进度和状态
  9. Weex + Ui - Weex Conf 2018
  10. 字符串低位优先排序真的只能排序字符串相同的字符么?
  11. navicat黑色_“黑色星期五”之SQL浅析
  12. JEB2.2.7/3.0.0兼容运行
  13. Mixly米思齐——超声波测距控制LED灯
  14. 7-3 皮球反弹高度 (10 分)
  15. Android 房贷计算
  16. 企业微信对接CRM销售系统,助力企业客户增长
  17. [JT]攻防世界web专项qwq
  18. 单片机2017福建省中职省赛_2017年福建省职业院校技能大赛首批设115个赛项
  19. 【九九乘法表】javascript做九九乘法表
  20. 图片怎么修改成750x750像素?

热门文章

  1. Linux中在Virtualbox 5.0上安装Windows10
  2. b站视频自动上传软件,soga
  3. Navicat用while循环插入数据
  4. Epoll之ET、LT模式
  5. TestNG框架的常会用注释及属性
  6. Flutter应用使用插件报错问题
  7. 事件二(.NET事件)
  8. python二分法排序_「二分法排序」插入排序之二分法插入排序 - seo实验室
  9. bootstrap栅栏系统
  10. 海思I2C工具i2c_read使用地址的规则