每日一题——LeetCode1175.质数排列

方法一 数学规律

其实题目的意思就是1-n里面本来是质数的位置只能放质数,非质数的位置只能放非质数,那么就把质数和非质数的排列分开考虑,假设有x个质数,根据数学的排列规律,那么这么质数的排列方案 数量为x的阶乘,同理非质数的排列为(n-x)的阶乘

所以这道题就是求质数的个数然后求两个阶乘的积

但是要注意对10^9+7取模,且应该是循环求阶乘时对每次循环的结果取模,不能只用最后的阶乘取模

javascript 复制代码
const mod = 1000000007;
var numPrimeArrangements = function(n) {
    var prime=0,res=1
    for(let i=2;i<=n;i++){
        if(isPrime(i)){ 
            prime++
        }
    }
    console.log(prime)
    var composite=n-prime
   while (prime > 0) {
        res = res % mod;
        res *= prime;
        prime--;
    }
    while (composite > 0) {
        res = res % mod;
        res *= composite;
        composite--;
    }
    
   return res
};

function isPrime(n) {
    if (n === 1) {
        return false;
    }
    for (let i = 2; i * i <= n; i++) {
        if (n % i === 0) {
            return false;
        }
    }
    return true;
}

消耗时间和内存情况:

相关推荐
鹏多多5 分钟前
前端是如何死去的?| 完整时间线
前端·javascript·程序员
一勺思维6 分钟前
我为什么把 Agent 的核心逻辑从 LangChain 里搬出来手写
算法
碧海银沙音频科技研究院24 分钟前
基于炬芯ATS308X的LE aduio LC3编解码算法功能实现
算法
小蒋观天下27 分钟前
厂区人员徘徊游荡判别——基于时序轨迹速度的逗留行为分级算法落地
大数据·人工智能·深度学习·算法·机器学习·ai大模型
古夕31 分钟前
iframe 授权失败时露出 60000 JSON 的复盘
前端·javascript
程序员清风32 分钟前
堆与优先队列:从 Top K 到任务调度
java·数据结构·算法
shaibdoio32 分钟前
瞬维AI技术拆解:AI获客智能体的双层漏斗算法原理
大数据·人工智能·算法
suhan44 分钟前
【数据结构】四、串:串string、模式匹配BF\KMP、广义表
数据结构·后端·算法
程序员Sunday1 小时前
ES Module 和 CommonJS 有什么区别?循环依赖时会发生什么?
前端·javascript·面试
hetao17338371 小时前
联盟场-提高组-R7 & ZYZSC-S-Round 11
c++·算法