每日一题——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;
}

消耗时间和内存情况:

相关推荐
2501_946736166 小时前
在线考试平台如何选型?从功能、优势与应用场景角度详解
大数据·人工智能·算法
天辛大师7 小时前
天心大师:不确定中锚定自我,AI生活的哲学命题
人工智能·算法·决策树·机器学习·生活·启发式算法
皓月斯语7 小时前
B2132 素数对
c++·算法·题解
星轨初途8 小时前
LeetCode 热题 100——day2 字母异位词分组
c++·算法·leetcode
happyprince8 小时前
篇1:整体观 · bitsandbytes项目全貌解读
人工智能·算法
青梅橘子皮8 小时前
STL---map/set... “家族“详解(从使用到底层)(1)
数据结构·算法
让学习成为一种生活方式8 小时前
DNA 甲基化综述(模式、调控与功能)--Current Opinion in Plant Biology
算法
Adios7949 小时前
搜索二维矩阵 II
java·数据结构·算法
满栀5859 小时前
原生JS + ECharts 多图表可视化实战:从业务实现到工程化优化
开发语言·javascript·echarts
-森屿安年-9 小时前
647. 回文子串
c++·算法·动态规划