【Luogu P2568】GCD
题目大意:
快速求:
\[\large{\sum_{d\in prime}\sum_{x=1}^{n}\sum_{y=1}^{n}[\gcd(x,y)==d]}
\]
正文:
方法一:
通过预处理筛法筛出素数再暴力枚举\(x\)和\(y\)。
预期得分20分。
方法二:
在方法一的基础考虑化简式子,因为两者的最大公因数都是 \(d\),所以 \(x|d\) 且 \(y|d\),那么:
\[\large{\sum_{d\in prime}\sum_{x=1}^{n}\sum_{y=1}^{n}[\gcd(x,y)==d] = \sum_{d\in prime}\sum_{x=1}^{\left\lfloor\dfrac{n}{d}\right\rfloor}\sum_{y=1}^{\left\lfloor\dfrac{n}{d}\right\rfloor}[\gcd(x,y)==1]}
\]
发现 \(\sum_{x=1}^{\left\lfloor\dfrac{n}{d}\right\rfloor}\sum_{y=1}^{\left\lfloor\dfrac{n}{d}\right\rfloor}[\gcd(x,y)==1]\) 有对称性,就是说假设 \(x=3,y=5\),像这样的情况,\(x=5,y=3\) 又算了一次,我们不妨把其式子化成 \(\sum_{x=1}^{\left\lfloor\dfrac{n}{d}\right\rfloor}2\sum_{y=1}^{x}[\gcd(x,y)==1]\)。但这是错的,假设 \(x=2,y=2\),原本只算了一次,但我们算了两次,所以我们应该化成 \(\sum_{x=1}^{\left\lfloor\dfrac{n}{d}\right\rfloor}(2\sum_{y=1}^{x}[\gcd(x,y)==1])-1\)。
又可以发现\(\sum_{x=1}^{\left\lfloor\dfrac{n}{d}\right\rfloor}(2\sum_{y=1}^{x}[\gcd(x,y)==1])-1=2(\sum_{x=1}^{\left\lfloor\dfrac{n}{d}\right\rfloor}\varphi(x))-1\)
所以最后要求出:
\[\large{\sum_{d\in prime}2(\sum_{x=1}^{\left\lfloor\dfrac{n}{d}\right\rfloor}\varphi(x))-1}
\]
预期得分100分。