1 32 2
4
快速幂!
AC码:
#include<stdio.h> #include<math.h> int main() { long long N,n,k; long long m,i,b,ans,t; long long a,j; scanf("%lld",&N); for(i=1;i<=N;i++) { scanf("%lld%lld",&n,&k); m=(int)pow(10,k); a=n%m; int flag=1; for(j=2;j<m;j++) { b=j; ans=1; t=n; while(b!=0) { if(b&1) { ans=(ans*t)%m; } b=b/2; t=t*t%m; } if(ans==a) { flag=0; printf("%lld\n",j-1); break; } } if(flag) printf("-1\n"); } return 0; }
原文地址:http://blog.csdn.net/u012804490/article/details/25740329