51nod 1239 尤拉函式之和

2021-08-09 14:56:26 字數 1362 閱讀 8911

和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...