题面

Description

Input

一共T+1行

第1行为数据组数T(T<=10)

第2~T+1行每行一个非负整数N,代表一组询问

Output

一共T行,每行两个用空格分隔的数ans1,ans2

Sample Input

6

1

2

8

13

30

2333

Sample Output

1 1

2 0

22 -2

58 -3

278 -3

1655470 2

题目分析

杜教筛模板题。(垃圾卡常题)

套套路即可。

代码实现

#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<cstdio>
#include<iomanip>
#include<cstdlib>
#include<map>
#define MAXN 0x7fffffff
typedef long long LL;
const int N=3e6+5,M=3e6;
using namespace std;
inline int Getint(){register int x=0,f=1;register char ch=getchar();while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}while(isdigit(ch)){x=x*10+ch-'0';ch=getchar();}return x*f;}
int prime[N];
bool vis[N]; int mu[N];
map<int,int>smu;
int Smu(int x){
if(x<=M)return mu[x];
if(smu[x])return smu[x];
int ret=1;
for(int l=2,r=0;r!=x;l=r+1){
r=x/(x/l);
ret-=1ll*(r-l+1)*Smu(x/l);
}
return smu[x]=ret;
} LL phi[N];
map<int,LL>sphi;
LL Sphi(int x){
if(x<=M)return phi[x];
if(sphi[x])return sphi[x];
LL ret=1ll*x*(1ll*x+1)/2;
for(int l=2,r=0;r!=x;l=r+1){
r=x/(x/l);
ret-=1ll*(r-l+1)*Sphi(x/l);
}
return sphi[x]=ret;
} int main(){
phi[1]=mu[1]=1;
for(int i=2;i<=M;i++){
if(!vis[i])prime[++prime[0]]=i,mu[i]=-1,phi[i]=i-1;
for(int j=1;j<=prime[0]&&i*prime[j]<=M;j++){
vis[i*prime[j]]=1;
if(i%prime[j]==0){
phi[i*prime[j]]=phi[i]*prime[j];
break;
}
phi[i*prime[j]]=phi[i]*phi[prime[j]];
mu[i*prime[j]]=-mu[i];
}
}
for(int i=2;i<=M;i++)phi[i]+=phi[i-1],mu[i]+=mu[i-1];
int T=Getint();
while(T--){
int n=Getint();
cout<<Sphi(n)<<' '<<Smu(n)<<'\n';
}
return 0;
}

最新文章

  1. mysql批量更新
  2. JAVA访问配置文件总结
  3. Axure草记
  4. vs2012快捷键失效解决办法
  5. Python爬虫学习:四、headers和data的获取
  6. android 防止反编译的若干方法
  7. linq中如何在join中指定多个条件
  8. linux中使用ifconfig命令查看网卡信息时显示为eth1,但是在network-scripts中只有ifcfg-eth0的配置文件,并且里面的NAME=&quot;eth0&quot;。
  9. centos 7.x开放端口
  10. [SCOI2012] 喵星球上的点名
  11. 定时任务redis锁+自定义lambda优化提取冗余代码
  12. Java 常用对象-Date类和Calender类
  13. 监控Linux的Steps&amp;Q&amp;A
  14. 一文看懂Stacking!(含Python代码)
  15. 分析maven的优点
  16. (2016.2.2)1001.A+B Format (20)解题思路
  17. shiro框架的学习
  18. jQuery补充,基于jQuery的bxslider轮播器插件
  19. ubuntu 指令修改时区 tzselect
  20. [Android]Caused by: java.lang.IllegalArgumentException: Service not registered.md

热门文章

  1. ionic-CSS:ionic 颜色
  2. JVM内核-原理、诊断与优化学习笔记(二):JVM运行机制
  3. 剑指offer——30栈的压入、弹出序列
  4. 剑指offer——19删除链表的节点
  5. 剑指offer——07用两个栈实现队列
  6. tensorflow run()和 eval()
  7. spring @Transactional注解参数详解(13)
  8. JS关闭当前父级div
  9. 【CSP-S/J 2019】初赛注意事项
  10. Java 巴什博弈(取石子报数问题)