k叉树下一层是上一层的k倍,则为公比为k的等比数列
带入得
ans=
1
(
1
−
k
h
)
1
−
k
\frac{1(1-k^h)}{1-k}
1−k1(1−kh)
=
题中简单无向连通图最少4-1=3边
最多4*3/2=6边
10个元素全部子集数为
2
10
2^{10}
210
7个为
C
10
7
C_{10}^7
C107
C(10,7)=C(10,3)
=10×9×8/(3×2×1)
=120
故为15/128
p
h
i
(
10000
)
=
phi(10000)=
phi(10000)== 4000
要求 getDivisor 函数的复杂度为
O
(
n
)
O(\sqrt n)
O(n),应填i*i。
a中不存在相同的约数,应填n/i
辗转相除法求最大公约数,此空应填return a
应填a%b
求最大公约数的和,应填ans+gcd(a[i],a[j])
#include <iostream>
using namespace std;
const int N = 110000, P = 10007;
int n;
int a[N], len;
int ans;
void getDivisor() {
len = 0;
for (int i = 1; ① <= n; ++i)
if (n % i == 0) {
a[++len] = i;
if ( ② != i) a[++len] = n / i;
}
}
}
int gcd(int a, int b) {
if (b == 0) {
③ ;
}
return gcd(b, ④ );
}
int main() {
cin >> n;
getDivisor();
ans = 0;
for (int i = 1; i <= len; ++i) {
for (int j = i + 1; j <= len; ++j) {
ans = ( ⑤ ) % P;
}
}
cout << ans << endl;
return 0;
}