leetcode1175-质数排列

质数排列
分别找出质数和合数的数量,将两者的阶乘相乘即可

class Solution {
    public int numPrimeArrangements(int n) {
        int cnt = 0;
        for(int i = 2; i <= n; i++){
            boolean flag = true;
            for(int j = 2; j*j <= i; j++){
                if(i % j == 0){
                    flag = false;
                    break;
                }
            }
            if(flag)    cnt++;
        }
        long res = 1, mod = (int)1e9+7;
        for(int i = 1; i <= cnt; i++)
            res = (res * i) % mod;
        for(int i = 1; i <= n-cnt; i++)
            res = (res * i) % mod;
        return (int)res;
    }
}
posted @ 2022-08-16 20:48  xzh-yyds  阅读(23)  评论(0)    收藏  举报