You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.0 KiB
C++

#include <cstdio>
using namespace std;
typedef long long i64;
char print(int x)
{
if(x>=0 && x<=9)return x + '0';
return x+55;
}
i64 qpower(i64 a, i64 b, i64 mod)
{
i64 res = 1;
while(b)
{
if(b & 1) res = a * res % mod;
b >>= 1;
a = a * a % mod;
}
return res;
}
double bbp(int n,i64 k,i64 b)
{
double res = 0;
for(int i=0;i<=n;i++)
{
res += (qpower(16,n-i,8*i+b) * 1.0/(8*i+b));
}
for(int i = n + 1;i <= n + 1000 + 1;i++)
{
res += (powf(16,n-i)* 1.0/(8*i+b));
}
return k * res;
}
int main()
{
int t,n;
cin>>t;
int cas = 1;
while(t--)
{
double ans = 0;
cin>>n;
n--;
ans = bbp(n,4,1) - bbp(n,2,4) - bbp(n,1,5) - bbp(n,1,6);
ans = ans - (int)ans;
if(ans<0)ans+=1;
ans*=16;
char c ;
c = print(ans);
printf("Case #%d: %d %c\n",cas++,n+1,c);
}
return 0;
}