題意是要求c(n, k)約數的個數:
如果資料不大,我們可以用楊輝三角遞推出來組合數,然後再求約數的個數。
但是這道題資料比較大,需要處理一下:
(1)首先先篩選出440以內的素數
(2)然後處理階乘 將階乘素因子分解
因為如果乙個整數能素因子分解為如下形式: s=(p1^a1)*(p2^a2)*(p3^a3)*(p4^a4)....... (1)式
那麼其因子個數為:(a1+1)*(a2+1)*(a3+1)*(a4+1)*...........
c(n,k)= n!/k!(n-k)!
把分子和分母都轉化為(1)式即可求出
下面給出我的**
#include
#include
#include
using namespace std;
int n,k,num=0;
int prime[440];
bool isprime[440];
void doprime() //線性篩選出440以內的素數}}
int main()
return 0;
}
pku2992(約數,素因子分解)
題意 求組合數c n k 的約數個數。k n 431 思路 乙個數num的約數個數為cnt,將num質因數分解,得num p1 a1 p2 a2 p3 a3 pn an.則約數個數cnt a1 1 a2 1 a3 1 an 1 c n k n n k k 先預求1到 的素數表。沒有預處理很容易超時的...
poj2992 N 素因子個數,因子個數
題目大意 求組合數cnk的因子個數 思路 要求因子個數,由於因子可由素因子組合而成,所以先求得素因子個數 n 某素因子p的指數公式 p n n p 1 n p 2 n p 3 n p n 其中最後乙個式子中n是使得p n小於等於 的最大數 因子個數公式 cnt p1 1 p2 1 p3 1 pn 1...
因子和因子個數
所有因子個數 n 與所有因子的和 n 都是乘 積 性函式。定義1 因子和函式 定義為整數n的所有正因子之和,記為 n 定義2 因子個數函式 定義為正整數n的所有正因子個數,記為 n 定理1 設p是乙個素數,a是乙個正整數,那麼 n 1 p p 2 p a p a 1 1 p 1 n a 1 定理2 ...