【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分。

posted @ 2020-01-16 09:10  Jayun  阅读(160)  评论(0编辑  收藏  举报