fzu - Problem 1759 Super A^B mod C
生活随笔
收集整理的這篇文章主要介紹了
fzu - Problem 1759 Super A^B mod C
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題解:A^B%C = ?A^(B%φ(c)+φ(c))%C;
知道這個公式,接下來怎么做,你懂得~~~
#include<stdio.h> #include<math.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; typedef __int64 LL; LL mod; LL a,c; char strB[1000005]; LL euler(LL x) {LL res = x;for(LL i = 2;i <= sqrt(x);i++){if(x%i==0){while(x%i==0) x/=i;res = res/i*(i-1);}}if(x > 1) res = res/x*(x-1);return res; } void fast_pow(LL a,LL b) {LL res = 1;while(b){if(b&1) res = res * a % c;a = a * a % c;b>>=1;}printf("%I64d\n",res); } int main() {while(~scanf("%I64d%s%I64d",&a,strB,&c)){LL len = strlen(strB);mod = euler(c);LL sum = 0;for(LL i = 0;i < len;i++)sum = (sum * 10 + strB[i] - '0')%mod;LL b = sum+mod;fast_pow(a,b);} }總結
以上是生活随笔為你收集整理的fzu - Problem 1759 Super A^B mod C的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 资深架构师十几年的架构干货经验总结分享!
- 下一篇: 从17 个方面对比 Kafka、Rabb