QQQ快速幂
作者:互联网
很显然超时了
//平方次数要考虑0次;
#include<stdio.h>
typedef long long ll;
int main()
{
ll a,b,p;
scanf("%lld %lld %lld",&a,&b,&p);
if(b==0) printf("%lld\n",1%p);
else
{
for(int i=1;i<b;i++){
a*=a;
a%=p;
}
printf("%lld\n",a%p);
}
return 0;
}
优化之后的
//平方次数要考虑0次;
//学习了位运算>> <<
#include<stdio.h>
typedef long long ll;
ll a,b,p,res=1;
int main()
{
scanf("%lld %lld %lld",&a,&b,&p);
if(b==0) printf("%lld\n",1%p);
else
{
while(b){
if(b&1) res=res*a%p;
a=a*a%p;
b>>=1;
}
printf("%lld\n",res%p);
}
return 0;
}
标签:int,res,ll,long,QQQ,printf,快速,lld 来源: https://blog.csdn.net/qq_60755126/article/details/122148232