SDNUOJ 1081 快速冪
阿新 • • 發佈:2018-12-07
Description
計算2013^b ^c mod 10000000
Input
兩個整數 b, c (0 < b, c < 2147483648)
Output
輸出2013bc mod 10000000的結果
Sample Input
2012 2011
Sample Output
3307281
算兩次快速冪
#include<cstdio> #include<iostream> #include<cstring> #include<cmath> #include<algorithm> using namespace std; #define mo 10000000 int main() { int a = 2013; long long b, c; while(scanf("%lld%lld",&b, &c) != EOF) { long long d = a % mo; long long e = 1; while(b) { if(b % 2 == 1) { e = e * d % mo; } d = d * d % mo; b /= 2; } long long f = e % mo; long long g = 1; while(c) { if(c % 2 == 1) { g = g * f % mo; } f = f * f % mo; c /= 2; } cout << g % mo << '\n' ; } return 0; }