首页 > 代码库 > 51Nod 1046 A^B Mod C(日常复习快速幂)
51Nod 1046 A^B Mod C(日常复习快速幂)
1046 A^B Mod C
基准时间限制:1 秒 空间限制:131072 KB 分值: 0
难度:基础题
给出3个正整数A B C,求A^B Mod C。
例如,3 5 8,3^5 Mod 8 = 3。
Input
3个正整数A B C,中间用空格分隔。(1 <= A,B,C <= 10^9)
Output
输出计算结果
Input示例
3 5 8
Output示例
3
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1046
分析:自己复习快速幂,忘得差不多了!
1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 inline ll read() 5 { 6 ll x=0,f=1; 7 char ch=getchar(); 8 while(ch<‘0‘||ch>‘9‘) 9 {10 if(ch==‘-‘)11 f=-1;12 ch=getchar();13 }14 while(ch>=‘0‘&&ch<=‘9‘)15 {16 x=x*10+ch-‘0‘;17 ch=getchar();18 }19 return x*f;20 }21 ll qpow(ll x,ll p,ll c)22 {23 ll ret=1;24 for(;p;p>>=1,x=x*x%c)25 {26 if(p&1)27 ret=ret*x%c;28 }29 return ret;30 }31 int main()32 {33 ll x,p,c;34 x=read();35 p=read();36 c=read();37 ll ans=qpow(x,p,c);38 cout<<ans<<endl;39 }
51Nod 1046 A^B Mod C(日常复习快速幂)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。