您的位置:首页 > 其它

HDU1395+快速幂

2013-07-07 23:17 246 查看
#include<stdio.h>
int fast_pow( int a,int b,int mod ){
int res = 1;
while( b>=1 ){
if( b%2==1 ){
res = res*a%mod;
}
a = a*a%mod;
b/=2;
}
return res;
}
int main(){
int n;
while( ~scanf("%d",&n) ){
if( n==1||n%2==0 ){
printf("2^? mod %d = 1\n",n);
continue;
}
int ans = 2;
while( 1 ){
if( fast_pow( 2,ans,n )==1 )
break;
ans++;
}
printf("2^%d mod %d = 1\n",ans,n);
}
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: