力扣1175 質數排列

2021-10-25 20:13:22 字數 915 閱讀 9875

題目描述

請你幫忙給從 1 到 n 的數設計排列方案,使得所有的「質數」都應該被放在「質數索引」(索引從 1 開始)上;你需要返回可能的方案總數。

讓我們一起來回顧一下「質數」:質數一定是大於 1 的,並且不能用兩個小於它的正整數的乘積來表示。

由於答案可能會很大,所以請你返回答案 模 mod 10^9 + 7 之後的結果即可。

示例
示例 1:

輸入:n = 5

輸出:12

解釋:舉個例子,[1,2,5,4,3] 是乙個有效的排列,但 [5,2,3,4,1] 不是,因為在第二種情況裡質數 5 被錯誤地放在索引為 1 的位置上。

示例 2:

輸入:n = 100

輸出:682289015

1 <= n <= 100
解題思路
第一層:要計算質數的個數

第二層:要用排列組合算出結果

第三層:要在計算階乘時注意不能溢位

**
#define n 1000000007

bool isprime

(int num)

}return true;

}long

modfunc

(int n)

intnumprimearrangements

(int n)

ret=

modfunc

(cnt)

*modfunc

(n-cnt)

%n;//return cnt;

return ret;

}

鏈結

1175 質數排列

題目描述 請你幫忙給從 1 到 n 的數設計排列方案,使得所有的 質數 都應該被放在 質數索引 索引從 1 開始 上 你需要返回可能的方案總數。讓我們一起來回顧一下 質數 質數一定是大於 1 的,並且不能用兩個小於它的正整數的乘積來表示。由於答案可能會很大,所以請你返回答案 模 mod 10 9 7...

LeetCode 1175 質數排列

請你幫忙給從 1 到 n 的數設計排列方案,使得所有的 質數 都應該被放在 質數索引 索引從 1 開始 上 你需要返回可能的方案總數。讓我們一起來回顧一下 質數 質數一定是大於 1 的,並且不能用兩個小於它的正整數的乘積來表示。由於答案可能會很大,所以請你返回答案 模 mod 10 9 7 之後的結...

力扣46 全排列

給定乙個 沒有重複 數字的序列,返回其所有可能的全排列。這道題其實就是看你如何遍歷這棵搜尋樹。輸入1,2,3情況下的求解樹,如下 如果用dfs來做 第一種思路,交換 可能比較難想到 說白了每次挑乙個數字出來,為了保證不重複,我就換就行了嘛。void perm int list,int k,int m...