传送门

坑着,联赛活着回来再填(死了就不填了)

 // luogu-judger-enable-o2
//minamoto
#include<iostream>
#include<cstdio>
#include<map>
#define ll long long
using namespace std;
const int N=1e5+,M=4e6+,limit=;
map<ll,ll> _mu;
map<ll,ll>::iterator ii;
ll p[M],m,mu[M];int vis[M];
void init(){
mu[]=;
for(ll i=;i<limit;++i){
if(!vis[i]) p[++m]=i,mu[i]=-;
for(int j=;j<=m&&i*p[j]<limit;++j){
vis[i*p[j]]=;
if(i%p[j]==){
mu[i*p[j]]=;
break;
}
mu[i*p[j]]=-mu[i];
}
}
for(int i=;i<limit;++i)
mu[i]+=mu[i-];
}
ll sum2(ll n){
if(n<limit) return mu[n];
if(_mu.count(n)) return _mu[n];
ll ans=;
for(int i=,r;i<=n;i=r+){
r=n/(n/i);
ans-=(r-i+)*sum2(n/i);
}
return _mu[n]=ans;
}
ll sum1(ll n){
ll ans=;
for(ll i=,r;i<=n;i=r+){
r=n/(n/i);
ans+=(n/i)*(n/i)*(sum2(r)-sum2(i-));
}
return ((ans-)>>)+;
}
int main(){
// freopen("testdata.in","r",stdin);
init();
ll T,n;scanf("%lld",&T);
while(T--){
scanf("%lld",&n);
printf("%lld %lld\n",sum1(n),sum2(n));
}
return ;
}

最新文章

  1. cacti添加主机监控
  2. uva 11401 Triangle Counting
  3. 【工具相关】iOS-Reveal的使用
  4. NOI模拟赛Day5
  5. MFC编程入门之十三(对话框:属性页对话框及相关类的介绍)
  6. iOS-Block的多种使用
  7. [译]Canvas的基本用法
  8. oracle 表查询二
  9. Qt中的键盘事件,以及焦点的设置(比较详细)
  10. WCF学习笔记(2)——使用IIS承载WCF服务
  11. centos6.4 安装erlang
  12. 【Java】0X003 面向对象
  13. JS 各种宽高
  14. (二叉树 递归) leetcode 144. Binary Tree Preorder Traversal
  15. semantic-ui 图标
  16. python全栈开发day101-认证组件、权限组件、频率组件
  17. VS Code 添加移除asp.net core项目引用
  18. IP代理(proxies参数)
  19. 安装mysql出现no compatible servers were found
  20. html5 ajax 文件上传

热门文章

  1. GstAppSrc简介
  2. MVC+Ext.net零基础学习记录(五)
  3. laravel基础课程---15、分页及验证码(lavarel分页效果如何实现)
  4. swift的arc 是不是有问题?
  5. Highcharts小数保留两位方法
  6. CentOS 6以下版本 支持Ext4
  7. js 时间格式处理插件 moment
  8. POJ3259(ford判环)
  9. HTML特殊字符的html、js、css写法汇总 (转)
  10. 卸载 Ubuntu gnome 自带的 Videos, Browser, Document Viewer等