欧拉降幂 (a^t)%c 模板
2024-09-03 02:59:37
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a,c,p,mod;
char t[];
ll phi(ll n)
{
ll res=n;
for(int i=;i*i<=n;i++){
if(n%i==){
res=res/i*(i-);
while(n%i==)
n/=i;
}
}
if(n>)
res=res/n*(n-);
return res;
}
ll quickpower(ll a,ll b,ll c)
{
ll ans=;
while(b)
{
if(b&)
ans=(ans*a)%c;
a=(a*a)%c;
b>>=;
}
return ans;
}
int main()
{
while(~scanf("%lld%s%lld",&a,t,&c)){
int len=strlen(t);
ll p=phi(c);
ll ans=;
for(ll i=;i<len;i++)
ans=(ans*+t[i]-'')%p;
ans+=p;
printf("%lld\n",quickpower(a,ans,c));
}
}
最新文章
- EC笔记,第二部分:9.不在构造、析构函数中调用虚函数
- Java--对象池化技术 org.apache.commons.pool2.ObjectPool
- 关于SVN代码提交粒度和频率的思考
- osgearth 配置mapNode TerrainOptions
- c++学习笔记——构造函数
- Handler笔记
- Challenge Checkio(python)—初尝python练习网站
- 数组对象-new Array
- 深入理解C/C++数组和指针
- iOS 开发 Message Digest Algorithm 5(MD5加密)
- COCOA&#174; PROGRAMMING FOR MAC&#174; OS X (2)- Speak Line
- 错误记录-spring+mybatis
- shell之 printf 输出语句
- mongoDB rs和sh关键字的作用
- Spring Boot 中实现定时任务的两种方式
- java 中文乱码以及转码
- 对于coursera上三门北大网课的评测
- Delphi常用快捷键
- IntelliJ IDEA像Eclipse一样打开多个项目(转)
- Codechef October Challenge 2018 游记