标签:计算 题目 lin through 要求 题解 个数 最小 简单
题目大意:
求$\sum\limits_{i=1}^n\sum\limits_{j=1}^n[lcm(i,j)>n](n\leq 10^{10})$的值。
题解:
这题貌似有n多种做法...
为了更好统计,把原式变为$n^2-\sum\limits_{i=1}^n\sum\limits_{j=1}^n[lcm(i,j)\leq n]$。
然后开始毒瘤...
首先,考虑枚举$lcm(i,j)$,设为$d$,计算有多少对$i.j$的最小公倍数为$d$。
设$i=p_1^{a_1}p_2^{a_2}\cdots p_k^{a_k}$,$tp(i)=k$
再枚举$gcd(i,j)$,设为$x$,又由于$\frac{i}{gcd(i,j)}$和$\frac{j}{gcd(i,j)}$互质,那么要统计的就是把$\frac{d}{x}$拆成两个互质数的方案数。
那么简单想一下,方案数就是$2^{tp(\frac{d}{x})}$,因为同一个质因子不能同时出现在两个数中。
于是答案变为:
$\sum\limits_{d=1}^n\sum\limits_{x|d}2^{tp(x)}$
枚举$x$,即$\sum\limits_{x=1}^n2^{tp(x)}\lfloor\frac{n}{x}\rfloor$。
然后我们发现$\lfloor\frac{n}{x}\rfloor$可以进行数论分块,所以需要求出$2^{tp(x)}$的前$n$项和。
但是...我不会啊!!
所以接下来我开始打表,然后我惊奇地发现:
$2^{tp(x)}=\sum\limits_{t|x}\mu^2(t)$!!!
标签:计算 题目 lin through 要求 题解 个数 最小 简单
原文地址:https://www.cnblogs.com/ldysy2012/p/11699922.html