分析:筛素数,然后枚举,莫比乌斯反演,然后关键就是分块加速(分块加速在上一篇文章)

#include<cstdio>
#include<cstring>
#include<queue>
#include<cstdlib>
#include<algorithm>
#include<vector>
#include<cmath>
using namespace std;
typedef long long LL;
const int N=1e7+;
const int INF=0x3f3f3f3f;
bool vis[N];
int prime[N],mu[N],cnt;
void getmu()
{
mu[] = ;
for(int i=; i<=N-; i++)
{
if(!vis[i])
{
prime[++cnt] = i;
mu[i] = -;
}
for(int j=; j<=cnt&&i*prime[j]<=N-; j++)
{
vis[i*prime[j]] = ;
if(i%prime[j]) mu[i*prime[j]] = -mu[i];
else
{
mu[i*prime[j]] = ;
break;
}
}
}
}
int main(){
getmu();
for(int i=;i<=N-;++i)mu[i]+=mu[i-];
int n;
scanf("%d",&n);
LL ans=;
for(int i=;i<=cnt&&prime[i]<=n;++i){
int l=n/prime[i];
for(int k=,j;k<=l;k=j+){
j=l/(l/k);
ans+=1ll*(mu[j]-mu[k-])*(l/k)*(l/k);
}
}
printf("%lld\n",ans);
return ;
}

最新文章

  1. C++_系列自学课程_第_7_课_数组_《C++ Primer 第四版》
  2. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 多软件系统集成缓存体系改进
  3. 构建高可用ZooKeeper集群(转载)
  4. VMware下虚拟机的转移
  5. MySQL数据库“局部”乱码
  6. ZOJ 3967 Colorful Rainbows --栈的应用
  7. HDU 5044 (树链剖分+树状数组+点/边改查)
  8. C程序设计语言练习题1-17
  9. AOP 之 6.1 AOP基础 ——跟我学spring3(转)
  10. 高可用的池化 Thrift Client 实现(源码分享)
  11. arcpy.mapping-认识arcpy.mapping
  12. linux系统各种乱码问题
  13. 通过 JS 实现简单的拖拽功能并且可以在特定元素上禁止拖拽
  14. C_使用clock()函数获取程序执行时间
  15. ztree模糊筛选展开选中节点
  16. Html链接标签:
  17. memoization提升递归效率
  18. javaWeb代码工程统计
  19. c# 简易绘制C语言头文件包含关系图 v2.0
  20. Linux中Subversion配置实例

热门文章

  1. Linux查找软件的安装路径
  2. 64位Win8系统下安装Oracle12c
  3. FBWF和EWF的对比
  4. Win7 钩子 超时 失效
  5. android通过泛型获取控件或视图
  6. php学习日志(1)-php介绍
  7. python 生成排列、组合以及选择
  8. hdu 5648 DZY Loves Math 组合数+深搜(子集法)
  9. tomcat session思考
  10. Centos 6.4上面用Shell脚本一键安装mysql 5.6.15