題目鏈結
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...