参考:https://www.cnblogs.com/SilverNebula/p/7045199.html

所是反演其实反演作用不大,又是一道做起来感觉诡异的题

转成前缀和相减的形式

\[\sum_{i=1}^{n}\sum_{j=1}^{n}[\frac{i*j}{gcd(i,j)}\leq n]
\]

\[\sum_{d=1}^{n}\sum_{i=1}^{\left \lfloor \frac{n}{d}\right \rfloor}\sum_{j=1}^{\left \lfloor \frac{n}{d}\right \rfloor}[gcd(i,j)==1][i*j\leq\left \lfloor \frac{n}{d} \right \rfloor]
\]

\[\sum_{k=1}^{n}
\mu(k)\sum_{d=1}^{\left \lfloor \frac{n}{k} \right \rfloor}\sum_{i=1}^{\left \lfloor \frac{n}{dk} \right \rfloor}\sum_{j=1}^{\left \lfloor \frac{n}{dk} \right \rfloor}[i*j*d\leq\left \lfloor \frac{n}{k^2} \right \rfloor]
\]

然后是非常神奇的缩小范围……

\[\sum_{k=1}^{\sqrt{n}}\mu(k)\sum_{d=1}^{\left \lfloor \frac{n}{k^2} \right \rfloor}\sum_{i=1}^{\left \lfloor \frac{n}{dk^2} \right \rfloor}\sum_{j=1}^{\left \lfloor \frac{n}{dk^2} \right \rfloor}[i*j*d\leq\left \lfloor \frac{n}{k^2} \right \rfloor]
\]

然后对于这个友好的范围直接枚举就可以了。

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const int N=1000005,m=1000000;
int q[N],mb[N],tot;
long long a,b;
bool v[N];
long long wk(long long n)
{
if(!n)
return 0;
long long re=0ll,tmp=0ll,a=sqrt(n);
for(long long k=1;k<=a;k++)
if(mb[k])
{
tmp=0;
long long b=n/k/k;
for(long long i=1;i*i*i<=b;i++)
{
for(long long j=i+1;j*j*i<=b;j++)
tmp+=(b/(i*j)-j)*6+3;
tmp+=(b/(i*i)-i)*3;
tmp++;
}
re+=mb[k]*tmp;
}
return (re+n)/2;
}
int main()
{
mb[1]=1;
for(int i=2;i<=m;i++)
{
if(!v[i])
{
q[++tot]=i;
mb[i]=-1;
}
for(int j=1;j<=tot&&i*q[j]<=m;j++)
{
int k=i*q[j];
v[k]=1;
if(i%q[j]==0)
{
mb[k]=0;
break;
}
mb[k]=-mb[i];
}
}
scanf("%lld%lld",&a,&b);
printf("%lld\n",wk(b)-wk(a-1));
return 0;
}

最新文章

  1. Bootstrap~页面的布局
  2. 极客DIY:打造属于自己的无线移动渗透测试箱
  3. jquery循环遍历radio单选按钮,并设置选中状态
  4. Oracle学习笔记1: 表与约束
  5. 使用 Scut 搭建通服架构
  6. Aptana Studio 快捷键
  7. JavaScript 再谈闭包
  8. 小tips:JS之for in、Object.keys()和Object.getOwnPropertyNames()的区别
  9. Linux配置外网访问mysql
  10. ecplise中设置字符编码
  11. log4j平稳升级到log4j2
  12. [Visual studio] Visual studio 2017添加引用时报错未能正确加载ReferenceManagerPackage包的解决方法
  13. Angular4学习笔记(九)- 生命周期钩子简介
  14. linux计划任务防暴力破解脚本+免密操作
  15. 『TensorFlow』SSD源码学习_其八:网络训练
  16. 05机器学习实战之Logistic 回归scikit-learn实现
  17. 百度2015校园招聘面试题回忆录(成功拿到offer)
  18. VMware下centos桥接模式静态ip配置
  19. 如何构建日均千万PV Web站点 (三) Sharding
  20. Form表单中Post与Get方法的区别

热门文章

  1. 使用Python将数据插入数据库(一)
  2. iOS macOS的后渗透利用工具:EggShell
  3. JavaScript Prototype in Plain Language
  4. Deepin-键盘快捷键
  5. js 终止执行的实现方法
  6. hdu1873 看病要排队(结构体优先队列)
  7. POJ 1936 All in All(串)
  8. 目前使用过的各大厂商rtsp取流的url
  9. Attribute(特性)
  10. C项目实践--家庭财务管理系统