1 条题解
-
0
我们知道模最大是1e9,并且很容易知道从4开始,这个数的阶乘的阶乘已经是大于1e9的,因为我们求的是阶乘,阶乘最后取模和每次取模后相乘的结果相同,因为现在计算的数一定大于模,所以一定会出现一项为0,因此最后的结果也为0。所以如果n小于4,我们直接暴力计算就可以了,反之直接输出0即可
#include <iostream> #include <sstream> using namespace std; int main() { long long n,m; int t; cin >> t; while(t --) { cin >> n >> m; if(n > 3){ cout << 0 << endl; } else if(n == 3){ long long res = 1; for(long long i = 1;i <= 720;i ++) { res *= i; res %= m; } cout << res << endl; } else if(n == 1 || n == 2){ cout << n % m << endl; } else if(n == 0){ cout << 1 % m << endl; } } return 0; }
- 1
信息
- ID
- 157
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 48
- 已通过
- 17
- 上传者