算法提高 快速幂
时间限制:1.0s 内存限制:256.0MB
问题描述
给定A, B, P,求(A^B) mod P。
输入格式
输入共一行。
第一行有三个数,N, M, P。
第一行有三个数,N, M, P。
输出格式
输出共一行,表示所求。
样例输入
2 5 3
样例输出
2
数据规模和约定
共10组数据
对100%的数据,A, B为long long范围内的非负整数,P为int内的非负整数。
对100%的数据,A, B为long long范围内的非负整数,P为int内的非负整数。
.
.快速幂代码:(大伙快速幂不懂的话推荐看一下百度文库的这篇文章)点击打开链接
#include<iostream> using namespace std; int PD(long long a,long long b,int c){ long long res=1; a%=c; while(b>0){ if(b%2==1){//是奇数的话 res=res*a%c; } b/=2; a=a*a%c; } return res; } int main(){ long long a,b; int c; cin>>a>>b>>c; cout<<PD(a,b,c); return 0; }