已知长度最大为200位的正整数n,请求出2011n的后四位。
【输入】
第一行为一个正整数k,代表有k组数据(k≤200),接下来的k行,每行都有一个正整数n,n的位数≤200。
【输出】
每一个n的结果为一个整数占一行,若不足4位,去除高位多余的0。
【输入样例】
3
5
28
792
【输出样例】
1051
81
5521
【来源】
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int N=10000;
typedef long long ll;
ll ans=0,l=-1;
char a[N+5];
int b[N];
void table()
{
ll o=1;
do
{
b[++l]=o;
o*=2011;
o%=N;
}
while(o!=1);
l++;
}
int main()
{
ll p;
b[0]=1;
scanf("%lld",&p);
getchar();
table();
while(p--)
{
char t;
ll n=0;
while(t=getchar(),t!='\n')
{
n*=10;
n+=t-'0';
n%=l;
}
printf("%d\n",b[n%l]);
}
}