1 条题解
-
1
#include<bits/stdc++.h> using namespace std; long long b,a,p,k,ans=1,c; int main() { scanf("%d%d%d",&b,&p,&k); a=b;c=p; while(p>0)//快速幂 { if(p%2!=0) ans=ans*b%k;//如果p为单数,乘到ans里面去,然后取模 b=b*b%k;//每次运算都取模 p=p>>1; //用位运算除2,可能会快一点 } ans %= k;//多年前的代码了……今天突然发现有大佬告知代码错误,仔细一看是在p = 0时没有取模,加上这句话就可以了 printf("%d^%d mod %d=%d",a,c,k,ans);//输出 return 0; }
- 1
信息
- ID
- 5284
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 141
- 已通过
- 42
- 上传者