GCC编译器是一个由GNU项目维护的编译系统,它支持多种编程语言的编译。但是它并不包含数学运算符“!”。在数学中,这个符号代表阶乘。表达式n!的意思是从1到n的所有整数的乘积。
例如,4!=4*3*2*1=24. (0!定义为1) 现在请你写程序计算一下 (0! + 1! + 2! + 3! + 4! + ... + n!)%m。
Input
第一行是一个整数T,代表了测试数据的组数。
每组测试数据单独一行,包括一个整数n和m,用一个空格隔开。
0 < T <= 20 0 <= n < 10^100 0 < m <= 10000
Output
对应每组输入,单独输出一行,给出(0! + 1! + 2! + 3! + 4! + ... + n!)%m的结果。
Sample Input
1 10 1017
Sample Output
424
每算一次取一次余有效减少运算量。
1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 using namespace std; 5 int main() 6 { 7 long m; 8 long n = 0; 9 char ch[110]; 10 int num, i; 11 12 cin >> num; 13 for (int test = 1; test <= num; test++) 14 { 15 scanf("%s %ld", ch, &m); 16 for (i = 0; ch[i] != '