LGP4714 數學 約數個數和

2022-03-26 22:33:00 字數 971 閱讀 4750

題目

眾所周知,除數個數函式\(\sigma_0=i^2\),\(i\)就是狄利克雷卷積裡的\(1\)函式

於是熟悉狄利克雷卷積的話很快就能看出我們要求的就是\(i\times i^\),即\(i^\),我們給這個函式起乙個名字叫\(f^\)

顯然這個東西是積性函式,於是我們考慮一下指數次冪的\(f\)如何求

顯然\[f^(n)=\sum_f^(d)

\]對於指數次冪\(p^m\)

\[f^(p^m)=\sum_^mf^k(p^i)

\]我們考慮一下快速求\(f^(p^m)\),發現就是就是把這\(m\)次冪分配到\(k+1\)次減少的機會裡去,當然最後不一定減少到\(0\),於是等價於把\(m\)個球分給\(k+2\)個盒子,允許為空,插板一下得知這個是\(\binom\),我們發現這個組合數非常好算,於是直接暴力就好了,由於又是積性函式,我們分解質因數之後直接合併就可以了

**

#include#include#include#include#include#define re register

#define min std::min

#define ll long long

const int maxn=1e7+5;

const int mod=998244353;

int f[maxn],p[maxn>>2],inv[505];

ll n,m;int t,ans=1;

inline int c(ll n,int m)

int main()

} p[++p[0]]=1e9+7,p[++p[0]]=998244353,p[++p[0]]=1e9+9;

for(re int i=1;i<=p[0];i++)

if(n!=1) ans=1ll*ans*c(m+2,1)%mod;

printf("%d\n",ans);

return 0;

}

約數個數定理and約數和定理

定理 對於乙個大於1正整數n可以 分解質因數 則n的正約數 的個數就是 證明 省略 舉個栗子 例題 正整數378000共有多少個 正約數?解 將378000 分解質因數378000 2 4 3 3 5 3 7 1 由約數個數定理可知378000共有正約數 4 1 3 1 3 1 1 1 160個。c...

約數個數定理 約數和定理

1 如果我們要求乙個數的所有因數的個數會怎麼去求呢?首先想到最簡單的方法就是暴力求解就可以。當然資料小 或者測試資料少就很簡單就可以過了。2 如果求乙個區間內的數的所有因數的個數呢?或者求乙個區間內的數的因數最大的數以及最大的因數 正因數 的個數?這樣的話,資料大一些,組數多一些,可能就要tle,所...

約數個數定理 約數和定理

1 如果我們要求乙個數的所有因數的個數會怎麼去求呢?首先想到最簡單的方法就是暴力求解就可以。當然資料小 或者測試資料少就很簡單就可以過了。2 如果求乙個區間內的數的所有因數的個數呢?或者求乙個區間內的數的因數最大的數以及最大的因數 正因數 的個數?這樣的話,資料大一些,組數多一些,可能就要tle,所...