nod1189 階乘能拆的和

2021-07-04 07:09:31 字數 567 閱讀 3643

題目鏈結

1/n! = 1/x + 1/y,給出n,求滿足條件的整數解的個數mod 10^9 + 7

化成x=(n!)^2/k+n!,問題轉化為求

(n!)^2的約數個數和。由於結果要求模10^9+7。所以得出的結果是(ans+1)/2%mod,進一步地變成(ans+1)*q%mod. 其中q是2模mod的乘法逆元。類似於之前那個求n^2因數和的題 因為是階乘 所以用了階乘的那個遞迴 之前小夥伴用了乙個超級麻煩的擴充套件歐幾里得求逆元,自己根據課件優化了一下==

#include #include#includeusing namespace std;

typedef long long ll;

const int maxn=1e6+7;

const long long mod=1e9+7;

ll sta[maxn],pnum[maxn],top;

ll cal(ll n,ll v)

bool notprime[maxn];

ll prime[maxn/10],top1;

void getprime()

for(ll j=0;j

階乘的素因子分解 51nod 1189

對 n 進行素因子分解 n 1 2 3 4 n,因此它一定含有小於等於n 的所有素數我們要對這些素數分別進行處理求出含有多少項。例如我們求n 含有多少個素因子p 設f n p 表示n 含有多少素因子p 1 2 3 4 n p 2p 3p 4p n p p k 其中k不含有素因子p 注 n p p i...

51Nod 1224 階乘的冪的倍數

題解 注意到 f i,k 一定單調,從小到大列舉每乙個 i 分解素數可以求出此時滿足條件的最小的 n 看 把 不會證明複雜度 n 乘若干個 log hhhhhhhh include include using namespace std typedef long long ll const int ...

51nod 1130 N的階乘的長度

1130 n的階乘的長度 v2 斯特林近似 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 輸入n求n的階乘的10進製表示的長度。例如6 720,長度為3。input 第1行 乙個數t,表示後面用作輸入測試的數的數量。1 t 1000 第2 t 1行 每行1個數n。1 n...