法雷級數fi的定義如下:
給定乙個i(i>=2),那麼所有的 a/b (0觀察可以發現f[i
]=f[
i−1]
+phi
[i
]f[i]=f[i-1]+phi[i]
f[i]=f
[i−1
]+ph
i[i]
,實際上對於x
y\frac
yx是最簡真分數,當且僅當x,y
x,yx,
y互質,y
>
xy>x
y>
x;則對於每乙個y
yy,滿足條件的x
xx的個數即為φ(x
)\varphi(x)
φ(x)
。即f [i
]f[i]
f[i]
實質上就是∑j=
2iφ(
j)
\sum_^i\varphi(j)
∑j=2i
φ(j)
#include
#include
#include
#include
#include
#include
#define ll long long
using
namespace std;
const
int n=
2e7+10;
const
int m=
2e6+10;
const
int inf=
2e7;
int phi[n]
,m,prime[m]
;bool v[n]
;ll f[n]
;inline
void
g_p(
)for
(int j=
1;j<=m&&i*prime[j]
<=inf;j++
)else phi[i*prime[j]
]=phi[i]
*(prime[j]-1
);}}
}int
main()
return0;
}
AcWing 篩法求尤拉函式 篩法 尤拉函式
時 空限制 1s 64mb 給定乙個正整數n,求1 n中每個數的尤拉函式之和。共一行,包含乙個整數n。共一行,包含乙個整數,表示1 n中每個數的尤拉函式之和。1 n 10 6 題意 求1 n中每個數的尤拉函式之和。思路 在這個題目中我們不能直接分別去求1 n之間的尤拉函式,會超時,所以我們就可以根據...
篩法尤拉函式
尤拉函式 因為對於n來說,小於等於n的正整數有n個,但是因為n是素數,n與其本身並不互質,所以有n 1個數跟它互質。若n為質數p的k次方 那麼 n p 1 pk n pk p是質數 所以乙個數要想跟n互質的話應該不是p的倍數,p的倍數有p p,2 p,3 p pn 1 p,共有pn 1個,小於等於n...
尤拉函式 POJ 2478 尤拉篩法
通式 phi x x 1 frac 1 frac 1 frac cdots 1 frac 若n是質數p的k次冪 phi n p k p p 1 p 因為除了p的倍數外,其他數都跟n互質。設n為正整數,以 phi n 表示不超過n且與n互素的正整數的個數,稱為n的尤拉函式值,這裡函式 n n,n n ...