P2303 [SDOI2012] Longge 的問題(尤拉函式,推式子)
P2303 [SDOI2012] Longge 的問題
題意:求
推式子
∑
i
=
1
n
g
c
d
(
i
,
n
)
∑
d
∣
n
d
∑
i
=
1
n
[
g
c
d
(
i
,
n
)
=
d
]
∑
d
∣
n
d
∑
i
=
1
n
d
[
g
c
d
(
i
,
n
d
)
=
1
]
∑
d
∣
n
d
ϕ
(
n
d
)
\sum_{i=1}^ngcd(i,n)\\ \sum_{d|n}d\sum_{i=1}^n[gcd(i,n)=d]\\ \sum_{d|n}d\sum_{i=1}^{\frac{n}{d}}[gcd(i,\frac{n}{d})=1]\\ \sum_{d|n}d\phi(\frac{n}{d})\\
i=1∑ngcd(i,n)d∣n∑di=1∑n[gcd(i,n)=d]d∣n∑di=1∑dn[gcd(i,dn)=1]d∣n∑dϕ(dn)
第一個式子:題目。
第二個式子:我們加一個列舉,列舉n的因子d(因為 g c d ( i , n ) gcd(i,n) gcd(i,n)一定是d的因子),然後統計 [ 1 , n ] [1,n] [1,n]中有多少個 g c d ( i , n ) = d gcd(i,n)=d gcd(i,n)=d,乘起來就是這個d對答案的貢獻,把每個d算一遍,就是答案了。
第三個式子:我們可以這樣理解 g c d ( i , n ) = d , 等 價 於 g c d ( i d , n d ) = 1 gcd(i,n)=d,等價於gcd(\frac id,\frac nd)=1 gcd(i,n)=d,等價於gcd(di,dn)=1,也就是我們可以在 [ 1 , n / d ] [1,n/d] [1,n/d]列舉 i i i,判斷有多少個 g c d ( i , n d ) = 1 gcd(i,\frac nd)=1 gcd(i,dn)=1等價於在 [ 1 , n ] [1,n] [1,n]列舉 i i i判斷有多少個 g c d ( i , n ) = d gcd(i,n)=d gcd(i,n)=d。
第四個式子:尤拉函式的定義。
Code
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll phi(ll x) {
//根據尤拉函式的性質,求尤拉函式值
ll n = x, res = x;
if(x == 1 || x == 2) return 1;
for(ll i=2; i*i<=x; i++) {
if(n % i == 0) {
res = res/i*(i-1);
while(n % i == 0) n /= i;
}
}
if(n > 1) res -= res/n;
return res;
}
int main() {
ll n, ans = 0;
cin >> n;
for(ll i=1; i*i<=n; i++) {//列舉n的每個因子
if(n % i == 0) {
ans += phi(i)*(n/i);
//如果i*i != n,i和n/i就不相等了,就可以都加起來,不然的話只能加一遍。
if(n/i != i) ans += phi(n/i)*i;
}
}
cout << ans;
return 0;
}
End
相關文章
- POJ 2048 Longge's problem (尤拉函式 積性函式)函式
- 推式子的做題記錄
- 尤拉函式φ函式
- 尤拉計劃512題(冪的尤拉總計函式和)函式
- 4939 尤拉函式函式
- HDU3501 Calculation 2(尤拉函式推廣)函式
- 尤拉函式入門函式
- 尤拉函式詳解函式
- poj 2478 尤拉函式函式
- 淺談尤拉函式函式
- Note -「因數的尤拉函式求和」函式
- 尤拉計劃533題:卡邁克爾函式函式
- 尤拉函式性質和模版函式
- HDU2588GCD(尤拉函式)GC函式
- 轉載:尤拉函式知識點總結及程式碼模板及尤拉函式表函式
- 函式索引的問題函式索引
- bzoj2818: Gcd(尤拉函式)GC函式
- POJ 2478-Farey Sequence(尤拉函式)函式
- B.日記和尤拉函式函式
- c++虛擬函式實現計算表示式子C++函式
- 函式呼叫棧的問題函式
- itoa函式的奇怪問題函式
- §3. 復變數的指數函式·尤拉公式變數函式公式
- HDU 4002Find the maximum(尤拉函式)函式
- POJ 2407-Relatives-尤拉函式函式
- 函式內部This的指向問題函式
- 關於scanf函式的問題函式
- 關於函式索引的問題?函式索引
- 紫書 例題 10-27 UVa 10214(尤拉函式)函式
- 關於cuda中的函式問題函式
- TO_DATE函式的小問題(二)函式
- [藍橋杯][演算法提高VIP]尤拉函式演算法函式
- HDU 1695-GCD(容斥原理+尤拉函式)GC函式
- HDU 3501 Calculation 2 (尤拉函式應用)函式
- 51nod1262 扔球(尤拉函式)函式
- 尤拉函式、整除分塊和擴充套件歐幾里得函式套件
- Java建構函式的繼承問題Java函式繼承
- thinkphp session 管理函式的一個問題PHPSession函式