然後對於trunc(n/d)只有根號n個解,跳就完了。
#include#include#include#include#includeusing namespace std;
#define ll long long
const int maxn=55000;
bool vis[60000]=;
ll prim[60000]=;
ll cnt=0;
ll mu[60000]=;//莫比烏斯函式
ll sum_mu[60000]=;//莫比烏斯函式的字首和
ll sum_f[60000]=;//約數的字首和
ll e[60000]=;//當前最大此項質因數的係數
ll f[60000]=;//約束和
void prime_pre()
for(ll j=1;j<=cnt&&prim[j]*i<=maxn;j++)
mu[i*prim[j]]=-mu[i];
f[i*prim[j]]=f[i]*f[prim[j]];
e[i*prim[j]]=1;
} } for(ll i=1;i<=maxn;i++)
}int main()
ll ans=0;
for(ll i=1,nxt;i<=n;i=nxt+1)
printf("%lld\n",ans);
} }
SDOI2015 約數個數和
description input 輸入檔案包含多組測試資料。第一行,乙個整數t,表示測試資料的組數。接下來的t行,每行兩個整數n m。output t行,每行乙個整數,表示你所求的答案。sample input 2 7 45 6 sample output 110 121data constrai...
SDOI2015 約數個數和
慢慢化柿子吧 要求的是這個 sum n sum md ij 神奇的約數個數函式有乙個這樣的性質 d ij sum sum x,y 1 試著從唯一分解定理的角度去理解,將 i,j 分別分解質因數 顯然 d ij 應該等於每乙個 p 在 i,j 中分解出來的指數加起來加1再相乘 所以分別列舉所有約數的話...
SDOI2015 約數個數和
portal 考慮這樣乙個式子 d ij sum sum x bot y 怎麼證明?一開始我們一定會想到 d ij sum sum 1 但這樣會計算重複.於是我們考慮 d ij sum sum j 1 這樣每個因數就變成 frac 如果x和y不互質.那麼就會有 frac frac 如果xp,yp同時...