博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P4213 【模板】杜教筛
阅读量:4463 次
发布时间:2019-06-08

本文共 1211 字,大约阅读时间需要 4 分钟。

[题目链接]

给定一个正整数\(N(N\le2^{31}-1)\)

\(ans_1=\sum_{i=1}^n\varphi(i)\)

\(ans_2=\sum_{i=1}^n \mu(i)\)

[题解]

// luogu-judger-enable-o2#include
#include
//#define int long longusing namespace std;typedef long long LL;const int INF=1e9+7;inline LL read(){ register LL x=0,f=1;register char c=getchar(); while(c<48||c>57){if(c=='-')f=-1;c=getchar();} while(c>=48&&c<=57)x=(x<<3)+(x<<1)+(c&15),c=getchar(); return f*x;}const int MAXN=5e6+5;LL mu[MAXN];LL phi[MAXN];int prime[MAXN];bool vis[MAXN];unordered_map
Smu,Sphi;int n,T;inline void init(int n){ mu[1]=1,phi[1]=1; for(int i=2;i<=n;i++){ if(!vis[i]){ prime[++prime[0]]=i; mu[i]=-1; phi[i]=i-1; } int x; for(int j=1;j<=prime[0]&&(x=(i*prime[j]))<=n;j++){ vis[x]=1; if(i%prime[j]==0){ mu[x]=0; phi[x]=1ll*phi[i]*prime[j]; break; } mu[x]=-mu[i]; phi[x]=1ll*phi[i]*phi[prime[j]]; } } for(int i=2;i<=n;i++) mu[i]+=mu[i-1],phi[i]+=phi[i-1];}inline LL S_mu(int x){ if(x

转载于:https://www.cnblogs.com/lizehon/p/10423808.html

你可能感兴趣的文章
Pascal程序练习-与7无关的数
查看>>
Linux:cut命令...未完待续
查看>>
(十一)tina | openwrt关闭调试串口(DEBUG UART)
查看>>
angularjs 使用angular-sortable-view实现拖拽效果(包括拖动完成后的方法使用)
查看>>
7. 单位,移动布局
查看>>
多路复用IO模型
查看>>
2019秋招复习笔记--数据库基本操作
查看>>
2019秋招复习笔记--智力题
查看>>
MySQL学习笔记
查看>>
面试题
查看>>
DS博客作业08-课程总结
查看>>
利用Python爬虫刷店铺微博等访问量最简单有效教程
查看>>
浅谈软件测试与墨菲定律
查看>>
文件安全复制之 FastCopy
查看>>
强烈推荐美文之《从此刻起,我要》
查看>>
敏捷开发流程
查看>>
leetcode 412. Fizz Buzz
查看>>
对Netflix Ribbon的Loadbalancer类源码设计合理性的一点质疑
查看>>
关于日历的算法
查看>>
[QT编程]QT实现的一个渐隐渐显窗体
查看>>