欧拉降幂和广义欧拉降幂
先百度贴个欧拉定理
由此可以得到降幂公式
第一个要求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;
}
欧拉降幂和广义欧拉降幂相关推荐
- 数学--数论--欧拉降幂和广义欧拉降幂(实用好理解)
一般大佬会给你证明,而菜鸟会教你怎么使用. 先摆上公式: ab≡{abmodϕ(p)gcd(a,p)=1abgcd(a,p)≠1,b<ϕ(p)abmodϕ(p)+ϕ(p)gcd(a,p)≠1,b ...
- 数论一之定理证明——裴蜀/威尔逊/费马/扩展欧几里得/[扩展]欧拉/[扩展]中国剩余定理,欧拉函数,逆元,剩余系,筛法
打死没想到会在H老师处学懂数论 同余,整除 模运算 埃式筛法 欧拉筛法 最大公约数和最小公倍数 辗转相除法 更相减损术 裴蜀定理 威尔逊定理 费马定理 同余等价类.剩余系.缩系 欧拉函数 欧拉定理 扩 ...
- 欧拉线性筛 与 欧拉函数 + 几道例题
欧拉线性筛 生成素数表prime[]数组 const int maxn = 1e7+5; int prime[maxn]; int visit[maxn]; void Prime(){memset(v ...
- 【微分方程数值解】常微分方程(一)欧拉方法和改进欧拉方法(附python算例,封装类)
欧拉方法与改进欧拉方法 一.算法原理 对给定微分方程 {y′=f(x,y)y(x0)=y0(1)\begin{cases} y' = f(x,y)\\ y(x_0) = y_0 \end{cases} ...
- 微分方程一维抛物热传导方程向前向后欧拉C-N格式二阶BDF格式MATLAB源码 显式欧拉,隐式欧拉,梯形公式,改进欧拉
微分方程一维抛物热传导方程向前向后欧拉C-N格式二阶BDF格式MATLAB源码 显式欧拉,隐式欧拉,梯形公式,改进欧拉 五点差分,九点差分 差分格式,紧差分格式 直拍,只有pdf版方法说明 word版 ...
- 欧若拉用计算机谱子,欧若拉 _谱友园地_中国曲谱网
<欧若拉>文本歌词 欧若拉 作词:施立 作曲:李天龙 演唱:张韶涵 制谱:孙世彦 神秘北极圈 阿拉斯加的山巅, 谁的脸 出现海角的天边? 忽然的瞬间 在那遥远的地点, 我看见 恋人幸福的光 ...
- 数学--数论--广义欧拉降幂(模板)
未使用欧拉筛: 适用于较少次数计算的欧拉降幂. #include <bits/stdc++.h> #define ll long long using namespace std; ll ...
- 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 ...
- 欧拉降幂及其扩展欧拉降幂
欧拉降幂: 从公式来看,需要使用快速幂运算和欧拉函数 #include<bits/stdc++.h>using namespace std; typedef __int64 LL;cons ...
最新文章
- apt cyg 安装php,Cygwin的包管理器:apt
- 全站HTTPS简单实践
- java源码影视源码搭建教程_新版千月影视app源码+搭建教程
- php dns刷新,Windows DNS缓存自动刷新
- 解决eclipse刚启动卡死的问题~~~亲测有效~~
- jQuery lazyload
- iOS开发第三方篇——友盟的哪些坑
- Hadoop学习笔记(二):MapReduce的进度和状态
- Weex + Ui - Weex Conf 2018
- 字符串低位优先排序真的只能排序字符串相同的字符么?
- navicat黑色_“黑色星期五”之SQL浅析
- JEB2.2.7/3.0.0兼容运行
- Mixly米思齐——超声波测距控制LED灯
- 7-3 皮球反弹高度 (10 分)
- Android 房贷计算
- 企业微信对接CRM销售系统,助力企业客户增长
- [JT]攻防世界web专项qwq
- 单片机2017福建省中职省赛_2017年福建省职业院校技能大赛首批设115个赛项
- 【九九乘法表】javascript做九九乘法表
- 图片怎么修改成750x750像素?