质数数阶乘乘以非质数阶乘
计算的过程中容易越界,可以考虑用long long存,返回时强制转换
class Solution {
public:
const int MOD = 1e9+7;
int numPrimeArrangements(int n) {
int primes[] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101};
int p = 0;
while(primes[p] <= n) p++;
int t = n - p;
long long res = t;
for(int i = 1; i < t; i++){
res = res * i % MOD;
}
for(int i = 1; i <= p; i++){
res = res * i % MOD;
}
return int(res);
}
};