题目描述:
https://leetcode-cn.com/problems/prime-arrangements/
Java代码:
class Solution {
public int isPrime(int n){ //n>=3,且为奇数(不考虑偶数)
for(int i=3,sqrt=(int)Math.sqrt(n);i<=sqrt;i+=2)if(n%i==0)return 0;
return 1;
}
public int numPrimeArrangements(int n) {
int primeCnt=n>=2?1:0; //对2特判
for(int i=3;i<=n;i+=2)primeCnt+=isPrime(i);
long ans=1;
for(int i=2;i<=primeCnt;i++)ans=ans*i%1000000007;
for(int i=n-primeCnt;i>1;i--)ans=ans*i%1000000007;
return (int)ans;
}
}