#include <iostream>
using namespace std;
/*学会利用预处理,减小时间复炸度*/
const int mod = 1000000007;
const int MAX_N = 1e6; // 根据题目可能的最大n值设定
// 预计算阶乘表
long long fact[MAX_N + 1];
// 初始化阶乘表
void precompute() {
fact[0] = 1;
for (int i = 1; i <= MAX_N; ++i) {
fact[i] = fact[i - 1] * i % mod;
}
}
int main() {
// 提前计算所有可能用到的阶乘
precompute();
int t;
cin >> t;
while (t--) {
long long n;
cin >> n;
// 直接从预计算的表中获取结果,O(1)操作
cout << fact[n] << endl;
}
return 0;
}



京公网安备 11010502036488号