51nod 1239 尤拉函式之和

2021-08-02 19:42:14 字數 1465 閱讀 8686

求: ∑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=1φ

(i)

∑ni=1∑j

|nφ(

j) =

∑ni=

1f(i

) =n

∗(n+

1)/2

∑ni=1s

(n/i

) ∑n

i=1∑

n/ij

=1φ(

j) =

∑ni=

1∑j|

nφ(j

) =n

∗(n+

1)/2

s(n) =

n∗(n

+1)/

2−∑n

i=2s

(n/i

) 利用和前一篇部落格(莫比烏斯函式)同樣的方法處理即可。

code:

#include

#define ll long long

#define fo(i, x, y) for(int i = x; i <= y; i ++)

using

namespace

std;

const

int maxn = 21544346, m = 1191279, mo = 1000000007;

bool bb, bz[maxn + 1];

int p[1362202], phi[maxn + 1];

ll n, ni = 500000004, h[m], f[m];

int hash(ll x)

void build()

phi[k] = phi[i] * (p[j] - 1);

}phi[i] = (phi[i] + phi[i - 1]) % mo;

}}ll dg(ll x)

x %= mo;

ans = (x * (x + 1) % mo * ni % mo - ans + mo) % mo;

f[w] = ans;

return ans;

}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 尤拉函式之和

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

51Nod 1239 尤拉函式之和

s n i 1n i n 是尤拉函式 給定n,求s n mod109 7 2 n 1010 這是我學杜教篩做的第二個題,第乙個就是和這個非常相似的求莫比烏斯函式之和 給大家推薦唐老師的一篇文章,個人感覺講的非常好,我就是在這裡學的 尤拉函式的乙個性質是這樣的n d n d 所以就有n n 1 2 i...