φ(x) φ ( x )
- 若 n=pk n = p k 则 φ(n)=pk−pk−1=(p−1)pk−1 φ ( n ) = p k − p k − 1 = ( p − 1 ) p k − 1
- 积性函数
- 若 n=pk11∗pk22∗...∗pkmm n = p 1 k 1 ∗ p 2 k 2 ∗ . . . ∗ p m k m 则有 φ(n)=n∗(1−1p!(1−1p2)∗... φ ( n ) = n ∗ ( 1 − 1 p ! ( 1 − 1 p 2 ) ∗ . . . 也就是有 φ(n)=∏(pi−1)pki−1i(pi|n) φ ( n ) = ∏ ( p i − 1 ) p i k i − 1 ( p i | n )
int getphi(int n) {
int ans = n;
for (int i = 2; i * i <= n; ++i) {
if (n % i == 0) {
ans -= ans / i;
while (n % i == 0) {
n /= i;
}
}
}
if (n > 1) {
ans -= ans / n;
}
return ans;
}
- 首先pp是个质数。如果 i i p=0 p = 0 ,那么 φ(i∗p)=p∗φ(i)φ(i∗p)=p∗φ(i) φ ( i ∗ p ) = p ∗ φ ( i ) φ ( i ∗ p ) = p ∗ φ ( i ) (结论一),否则 φ(i∗p)=φ(i)∗(p−1)φ(i∗p)=φ(i)∗(p−1) φ ( i ∗ p ) = φ ( i ) ∗ ( p − 1 ) φ ( i ∗ p ) = φ ( i ) ∗ ( p − 1 ) (结论二)。
-
φ(i∗j)=φ(i)φ(j)∗gcd(i,j)φ(gcd(i,j)) φ ( i ∗ j ) = φ ( i ) φ ( j ) ∗ g c d ( i , j ) φ ( g c d ( i , j ) )
约数个数定理
若有
n=pk11∗pk22∗pk33...
n
=
p
1
k
1
∗
p
2
k
2
∗
p
3
k
3
.
.
.
d(n)=(k1+1)∗(k2+1)∗(k3+1)...
d
(
n
)
=
(
k
1
+
1
)
∗
(
k
2
+
1
)
∗
(
k
3
+
1
)
.
.
.
约数相关
狄利克雷卷积
性质一
性质二
性质三