luogu 5091 欧拉定理
Posted zjxxcn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了luogu 5091 欧拉定理相关的知识,希望对你有一定的参考价值。
裸题: 扩展欧拉定理的应用
1 #include<bits/stdc++.h> 2 using namespace std; 3 int ph(int x) 4 int ret=x; 5 for(int i=2;i*i<=x;i++) 6 if(x%i==0) 7 ret=ret/i*(i-1); 8 while (x%i==0) x/=i; 9 10 if(x>1) ret=ret/x*(x-1); 11 return ret; 12 13 int main() 14 int a,b=0,m,check=0; 15 scanf("%d%d",&a,&m); 16 int t=ph(m); 17 char c; 18 while ((c=getchar()) && !isdigit(c)); 19 while (isdigit(c)) 20 b=b*10+(c^48); 21 while (b>=t) b-=t,check=1; 22 c=getchar(); 23 24 if(check) b=b+t; 25 int ans=1; 26 for(int i=0;i<=20;i++) 27 if(b&(1<<i)) ans=1LL*ans*a%m; 28 a=1LL*a*a%m; 29 30 printf("%d\\n",ans); 31 return 0; 32
以上是关于luogu 5091 欧拉定理的主要内容,如果未能解决你的问题,请参考以下文章