和51nod 1244 莫比烏斯函式之和思路一致
還是建議去看看:
思路:
首先你要知道:∑d
|nφ(
d)=n
,證明過程省略掉,可以看一下《初等數論及其應用(原書第6版)》([美]kenneth h.rosen ),裡面有證明,順便安利一下,感覺這本書講的挺好的。
把那個公式移項一下,就是:φ(
n)=n
−∑d|
n,d(d)
設ϕ(n
)=∑n
i=1φ
(i) ,則有 ϕ(
n)=∑
ni=1
φ(i)
=∑ni
=1i−
∑d|i
,d(d)=
n⋅(n
+1)2
−∑ni
=2∑d
|i,d
(d)=
n⋅(n
+1)2
−∑ni
d=2∑
⎢⎣⎢⎢
nid⎥
⎦⎥⎥d
=1φ(
d)=n
⋅(n+
1)2−
∑ni=
2∑⌊n
i⌋d=
1φ(d
)=n⋅
(n+1
)2−∑
ni=2
ϕ(⌊n
i⌋)
公式都是從上邊部落格複製的。。。。
然後打表,大概打出來sqrt(n)左右的資料,然後記憶化搜尋就好了。
#include
using namespace std;
typedef long
long ll;
const int maxn = 6e5;
const ll mod = 1e9+7;
struct edge
edge[maxn+10];
int head[maxn+10],tot;
int euler[maxn+10];
intsum[maxn+10];
int trev = 500000004;
void geteuler()
sum[i] = (sum[i-1]+euler[i])%mod;
}}void addedge(int u, ll v, ll val)
ll solve(ll n)
ret = (ret%mod + ((n%mod)*((n+1)%mod)%mod)*trev%mod)%mod;
addedge(u,n,ret);
return ret;
}int main()
51nod1239 尤拉函式之和
求 i 1n i n 10 10 這道題和莫比烏斯函式一行,都可以通過神奇的推導的出結論。我們設 n i 1n i 眾所周知,d n d n 那麼,n n d n,d d 於是 n i 1n i d i,d d n n n 1 2 i 2n d i d d n n n 1 2 i d 2n d 1 ...
51nod 1239 尤拉函式之和
求 n i 1 i 1 n 10 杜教篩第二道裸題。必要結論 i n i n 證明 設f n i n i 將n分解質因數,n p qii 利用莫比烏斯函式裡學到的乙個性質,可以得到 f n f pq ii f pq qk 0 pk q k 1p k pk 1 1 p q f n n 設s n n i...
51Nod 1239 尤拉函式之和
acm模版 這個題和那個 51nod 1244 莫比烏斯函式之和 的方法幾乎一模一樣,差別就是推導公式的結果不一樣罷了,但是形式是一樣的。推導如下 設 f n i 1 n i 通過尤拉函式的性質我們可以知道 d n d n 所以呢,n n d n,d d f n i 1n i d i,d d f n...