題目描述:
請你幫忙給從 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
方法1:
主要思路:
(1)統計出 n 範圍內的所有的素數,然後將素數和非素數的階乘的成績對1000000007求餘即可;
class
solution
}return
true;}
//計算階乘
long
fun(
int n)
return res;
}int
numprimearrangements
(int n)
int nums_prime=1;
//統計素數,跳過偶數直接判斷
for(
int i=
3;i<=n;i+=2
)}//計算
return
fun(nums_prime)
*fun
(n-nums_prime)%(
1000000007);
}};
LeetCode 1175 質數排列
請你幫忙給從 1 到 n 的數設計排列方案,使得所有的 質數 都應該被放在 質數索引 索引從 1 開始 上 你需要返回可能的方案總數。讓我們一起來回顧一下 質數 質數一定是大於 1 的,並且不能用兩個小於它的正整數的乘積來表示。由於答案可能會很大,所以請你返回答案 模 mod 10 9 7 之後的結...
力扣1175 質數排列
題目描述請你幫忙給從 1 到 n 的數設計排列方案,使得所有的 質數 都應該被放在 質數索引 索引從 1 開始 上 你需要返回可能的方案總數。讓我們一起來回顧一下 質數 質數一定是大於 1 的,並且不能用兩個小於它的正整數的乘積來表示。由於答案可能會很大,所以請你返回答案 模 mod 10 9 7 ...
質數 篩質數
質數定理 1 n中質數有n ln n 個質數 按順序刪除每個數的倍數,最後剩下的就是質數。給定乙個正整數n,請你求出1 n中質數的個數。輸入格式 共一行,包含整數n。輸出格式 共一行,包含乙個整數,表示1 n中質數的個數。資料範圍 1 n 1061 n 106 輸入樣例 8輸出樣例 4 includ...