可以发现后者比前者刚好多乘了一个 $4$。
那么这个性质可以得到推广:
对于任意一个 $i!$,都有 $i! = (i - 1)! \times i$。
总结出来这个公式后,结合题目,就可以得到 $a_i = a_{i - 1} \times i \bmod k$ 这个公式了。
代码如下:
```cpp
#include <bits/stdc++.h>
using namespace std;
long long l, r, k, ans = INT_MIN, a[2000010];
long long jc(long long n){
long long sum = 1;
for(int i = 1; i <= n; i ++){
sum = sum * i % k;
}
return sum;
}
int main(){
// freopen(".in", "r", stdin);
// freopen(".out", "w", stdout);
cin >> l >> r >> k;
ans = max(ans, jc(l));
a[l] = jc(l);
for(int i = l + 1; i <= r; i ++){
a[i] = a[i - 1] * i % k;
ans = max(ans, a[i]);
}
cout << ans;
return 0;
}
```