1 /*
2 LightOJ1282 Leading and Trailing
3 http://lightoj.com/login_main.php?url=volume_showproblem.php?problem=1282
4 数论 fmod
5 fmod题。
6 求n^k的前三位
7 n可以写成10^a(a为小数)的形式。
8 因此原式=10^(ak).
9 而ak可以写成x+y,其中x为ak的整数部分,y为ak的小数部分
10 所以x决定了位数,y决定了值
11 因此求出y即可。
12 而n=10^a => a=log10(n)
13 fmod(x,1)可以求出x的小数部分
14 因此用fmod(ak,1)即可求出y
15 */
16 #include <cstdio>
17 #include <algorithm>
18 #include <cstring>
19 #include <cmath>
20 #include <vector>
21 #include <queue>
22 #include <iostream>
23 #include <map>
24 #include <set>
25 //#define test
26 using namespace std;
27 const int Nmax=1e6+7;
28 const long long mod=1000;
29 long long qpow(long long base,long long n)
30 {
31 base%=mod;
32 long long ans=1LL;
33 while(n>0)
34 {
35 if(n&1)
36 ans=(ans*base)%mod;
37 base=(base*base)%mod;
38 n>>=1;
39 }
40 ans=ans%mod;
41 return ans;
42 }
43 int main()
44 {
45 #ifdef test
46 #endif
47 int t;
48 scanf("%d",&t);
49 t=0;
50 long long n,k;
51 while(scanf("%lld%lld",&n,&k)==2)
52 {
53 t++;
54 double x=pow(10.0,fmod(k*log10(1.0*n),1));
55 x=x*100.0;
56 printf("Case %d: %d %03lld\n",t,(int)x,qpow(n,k));
57 }
58 return 0;
59 }