uvalive 10692 欧拉定理
来源:互联网 发布:.net软件开发程序员 编辑:程序博客网 时间:2024/06/06 05:04
a^x=a^(x%phi(c)+phi(c)) (mod c)
a^phi(c)=1 (mod c)
#include<iostream>#include<cstdio>#include<cstring>using namespace std;//m^n%klong long eular(long long n){ long long ans=1,i; for(i=2; i*i<=n; i++) { if(n%i==0) { ans*=i-1; n/=i; while(n%i==0) { ans*=i; n/=i; } } } if(n>1) { ans*=n-1; } return ans;}long long quickpow(long long m,long long n,int k){ long long b = 1; while (n > 0) { if (n & 1) b = (b*m)%k; n = n >> 1 ; m = (m*m)%k; } return b%k;}long long m,a[110],x;int n;char s[100];long long e[110];int main(){ int ca=1; while(scanf("%s",s)) { if(s[0]=='#')break; m=0; int l=strlen(s); for(int i=0; i<l; i++) { m=m*10+(s[i]-'0'); } scanf("%d",&n); for(int i=0; i<n; i++)scanf("%lld",&a[i]); e[0]=eular(m); for(int i=1;i<n;i++)e[i]=eular(e[i-1]); long long b; if(n!=1) b=a[n-1]%e[n-2]; else b=a[n-1]%m; for(int i=n-2; i>=0; i--) { if(i) b=quickpow(a[i],b+e[i],e[i-1]); else b=quickpow(a[i],b+e[i],m); } cout<<"Case #"<<ca++<<": "; cout<<b<<endl; } return 0;}
- uvalive 10692 欧拉定理
- uvaLive 3263 That Nice Euler Circuit 欧拉定理
- UVALive 3263 That Nice Euler Circuit 计算几何欧拉定理
- UVALive 3263 That Nice Euler Circuit 计算几何+欧拉定理
- Uvalive 3263 That Nice Euler Circuit(几何欧拉定理)
- UVALive 4998 浅谈欧拉定理优化数位动态规划求解高阶同余方程
- 费马小定理&&欧拉定理
- 威尔逊定理,费马小定理,欧拉定理
- 欧拉定理
- 欧拉定理证明
- 欧拉定理
- 【数论】欧拉定理
- 欧拉定理
- 欧拉定理
- 欧拉定理
- 欧拉定理
- 欧拉定理
- 扩展欧拉定理
- Perl中的正则表达式
- __declspec(novtable)以及虚函数调用
- 认真对待 懂得放弃
- jQuery.extend 函数详解
- php html文档解析器simple_html_dom
- uvalive 10692 欧拉定理
- Extjs4循序渐进(二)—Ext的界面(容器和布局)
- UIPasteboard
- android MediaPlayer java.io.IOException: Prepare failed.: status=0x1 解决
- IOS中将UITextField输入框设置为密码形式
- 从三个方面进行讲解如何适当优化"SQL"
- 驱动总结之mmap函数实现
- 存在多个版本jdk配置问题
- iOS 7用户界面过渡指南(上):过渡前的准备工作