//大数取模,模为整型,运用到数学公式 式1表示一个数,式2是关于10^n mod c 的递推公式。对于式3,赋值前,k是前面10^(n-1)数量级的和取模的结果,每步进行递推,最后即可得到结果。另外需要记录一个变量专门存储10^n mod c的值#include
#include
#include
using namespace std;
int mod[100];
int bigIntMod(string num, int mod)
{
int result = (num[num.size() - 1] - '0') % mod ,
result10 = 1 % mod;
for (int i = num.size() - 2; i >= 0; i--){
result10 = ((10 % mod) * (result10 % mod) ) % mod;
result = ( result + ((num[i] - '0') % mod * (result10 % mod) ) % mod ) % mod;
}
return result;
}
int main()
{
int testCase;
scanf("%d",&testCase);
while ( testCase-- ){
int numCount;
scanf("%d",&numCount);
for ( int i = 0 ; i < numCount; i++){
scanf("%d",&mod[i]);
}
string num;
cin >> num;
printf("(%d",bigIntMod(num,mod[0]));
for ( int i = 1 ; i < numCount; i++)
printf(",%d",bigIntMod(num,mod[i]));
printf(")
");
}
return 0;
}