指数循环节 uva 10692
2017-08-02 14:37
477 查看
#include<cstdio> #include<cstring> #include<cmath> using namespace std; int d[1000],n,m; int qcal(int a,int n,int m) { int res=1; while(n) { if(n&1) res=res*a%m; n>>=1; a=a*a%m; } return res; } int pcal(int n) { int m=(int)sqrt(n+0.5); int res=n; for(int i=2;i<=m;i++) if(n%i==0) { res=res/i*(i-1); while(n%i==0) n/=i; } if(n>1) res=res/n*(n-1); return res; } int solve(int lo,int m) { if(lo==n-1) return d[lo]%m; int phi=pcal(m); int t; // if(d[lo+1]>=phi) t=solve(lo+1,phi)+phi; // else // t=solve(lo+1,m); return qcal(d[lo],t,m); } int main() { char str[1000]; int t=1; while(~scanf("%s",str)&&str[0]!='#') { sscanf(str,"%d",&m); scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&d[i]); printf("Case #%d: %d\n",t++,solve(0,m)); } }
相关文章推荐
- UVa 10692 Huge Mods (指数循环节)
- uva10692-指数循环节
- UVa 10692 - Huge Mods(指数循环节)
- uva 10692 - Huge Mods 指数循环节
- UVa10692,Huge Mod,数论,欧拉定理,指数循环节
- uva 10692 - Huge Mods(指数循环节)
- uva10692 - Huge Mods poj2164: Remainder Calculator 指数循环节
- 10692 - Huge Mods(指数循环节)
- UVa11582 巨大的斐波那契数 循环节计算+快速幂
- 费马小定理,欧拉定理,指数循环节
- UVA - 10692 Huge Mods (欧拉函数)
- uvalive 10692 欧拉定理
- HDU2837 Calculation 指数循环节 欧拉函数+快速幂
- hdu 4704 Sum 指数循环节
- hdu4335 (指数循环节)
- 【Sum(费马小定理+指数循环节公式)】
- hdu 2837 Calculation【欧拉函数,快速幂求指数循环节】
- Super A^B mod C(指数循环节+欧拉函数)
- FZU 1759-Super A^B mod C(指数循环节)
- UVA202 - Repeating Decimals(循环小数循环节)