传送门:https://codeforces.com/gym/103428/problem/I
题目大意:给定一个数 n n n,问你 1 1 1到 n n n的整除关系的哈斯图上,相互两点的最短距离和是多少,定义两点 i , j ( i > j ) i,j(i>j) i,j(i>j)之间的边权是 i j \frac{i}{j} ji。
题解:如果不懂整除关系的哈斯图是什么样子可以看看下图。
不难发现,在图上的每一步行走,相当于乘上一个质数 p p p,或者除以一个质数 p p p。那么对于 i = p i 1 s i 1 p i 2 s i 2 ⋯ p i r s i r , j = p j 1 s j 1 p j 2 s j 2 ⋯ p j r s j r i=p_{i1}^{s_{i1}}p_{i2}^{s_{i2}}\cdots p_{ir}^{s_{ir}},j=p_{j1}^{s_{j1}}p_{j2}^{s_{j2}}\cdots p_{jr}^{s_{jr}} i=pi1si1pi2si2⋯pirsir,j=pj1sj1pj2sj2⋯pjrsjr,其两点的最短距离一定是
∑ p ∈ p r i m e p × ∣ s i − s j ∣ \sum\limits_{p\in prime}p\times \left|s_i-s_j\right| p∈prime∑p×∣si−sj∣
稍加变换一下,可以得到
∑ p ∈ p r i m e ∑ i = 1 p