51nod 1239 欧拉筛模板
#include<iostream>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
const int mod=,maxn=,p=,N=;
const ll ni=;
int last[p],pre[p],cnt,phi[N+],pp[N+];
ll t[p],v[p],n;
bool vis[N+];
void add(int x,ll y,ll z){++cnt;pre[cnt]=last[x];last[x]=cnt;t[cnt]=y;v[cnt]=z;}
ll calc(ll x){
if(x<=N)return phi[x];
int k=x%p;
ll res=,l,r,z=x%mod;
for(int i=last[k];i;i=pre[i])if(t[i]==x)return v[i];
for(l=;l<=x;l=r+){
r=x/(x/l);res=(res+(r-l+)%mod*calc(x/l)%mod)%mod;
}
res=(z*(z+)%mod*ni%mod-res+mod)%mod;
add(k,x,res);
return res;
}
void euler(){
for(int i=;i<=N;++i){
if(!vis[i])pp[++pp[]]=i,phi[i]=i-;
for(int j=;j<=pp[]&&i*pp[j]<=N;++j){
vis[i*pp[j]]=;
if(i%pp[j]==){phi[i*pp[j]]=phi[i]*pp[j];break;}
phi[i*pp[j]]=phi[i]*(pp[j]-);
}
}
phi[]=;
for(int i=;i<=N;++i)phi[i]=(phi[i]+phi[i-])%mod;
}
int main(){
euler();
cin>>n;
cout<<calc(n)<<endl;
//system("pause");
return ;
}
51nod 1239 欧拉筛模板的更多相关文章
- [51Nod 1244] - 莫比乌斯函数之和 & [51Nod 1239] - 欧拉函数之和 (杜教筛板题)
[51Nod 1244] - 莫比乌斯函数之和 求∑i=1Nμ(i)\sum_{i=1}^Nμ(i)∑i=1Nμ(i) 开推 ∑d∣nμ(d)=[n==1]\sum_{d|n}\mu(d)=[n== ...
- 51nod 1239 欧拉函数之和(杜教筛)
[题目链接] https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1239 [题目大意] 计算欧拉函数的前缀和 [题解] 我们 ...
- 51Nod 1239 欧拉函数前n项和 杜教筛
http://www.51nod.com/Challenge/Problem.html#!#problemId=1239 AC代码 #include <bits/stdc++.h> #de ...
- 51nod 1239 欧拉函数之和【欧拉函数+杜教筛】
和bzoj 3944比较像,但是时间卡的更死 设\( f(n)=\sum_{d|n}\phi(d) g(n)=\sum_{i=1}^{n}f(i) s(n)=\sum_{i=1}^{n}\phi(i) ...
- 【BZOJ 2190】【SDOI 2008】仪仗队 欧拉筛
欧拉筛模板题 #include<cstdio> using namespace std; const int N=40003; int num=0,prime[N],phi[N]; boo ...
- 欧拉筛法模板&&P3383 【模板】线性筛素数
我们先来看欧拉筛法 •为什么叫欧拉筛呢?这可能是跟欧拉有关 •但是为什么叫线性筛呢?因为它的复杂度是线性的,也就是O(n),我们直接来看代码 #include<cstdio> #inc ...
- 欧拉筛(线性筛) & 洛谷 P3383 【模板】线性筛素数
嗯.... 埃氏筛和欧拉筛的思想都是相似的: 如果一个数是素数,那么它的所有倍数都不是素数.... 这里主要介绍一下欧拉筛的思路:(欧拉筛的复杂度大约在O(n)左右... 定义一个prime数组,这个 ...
- 51 NOD 1239 欧拉函数之和(杜教筛)
1239 欧拉函数之和 基准时间限制:3 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 收藏 关注 对正整数n,欧拉函数是小于或等于n的数中与n互质的数的数目.此函数以其首名研究 ...
- 欧拉筛法模板and 洛谷 P3383 【模板】线性筛素数(包括清北的一些方法)
题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入格式 第一行包含两个正整数N.M,分别表示查询的范围和查询的个数. 接下来M行每行包含一个不小于1 ...
随机推荐
- linux arm-linux-gcc 安装编译
1,将 .tgz 安装包通过SSH传至ubuntu 2,tar -zxvf arm-linux-gcc.tgz 解压 3,配置环境变量(由于鄙人只需其中一个用户使用,所以直接再其主目录) ...
- jquery.form.js 使用以及问题(表单异步提交)
标注:我引用的js后报错 原因:是引用的js有冲突 我引用了两便jQuery: 转载:https://blog.csdn.net/cplvfx/article/details/80455485 使用方 ...
- 搭建FTP服务器 window7
1.安装IIS组件,打开控制面板-->程序和功能,点击打开或关闭windows功能 找到Internet信息服务,勾选FTP服务器和Web管理工具下的IIS管理控制台进行安装ftp,如图所示 2 ...
- css代码插入三种方式
1.内联式 <p style="color:red;font-size: 12px">iutt</p> 2.嵌入式 <style type=" ...
- 使用Tophat+cufflinks分析差异表达
使用Tophat+cufflinks分析差异表达 2017-06-15 19:09:43 522 0 0 使用TopHat+Cufflinks的流程图 序列的比对是RNA分析 ...
- 洛谷1462(重题1951) 通往奥格瑞玛的道路(收费站_NOI导刊2009提高(2))
1462原题链接 1951原题链接 显然答案有单调性,所以可以二分答案,用\(SPFA\)或\(dijkstra\)跑最短路来判断是否可行即可. 注意起点也要收费,\(1462\)数据较水,我一开始没 ...
- Nowcoder OI赛制测试2 F 假的数学题 - 斯特林公式 + 二分
Description 给定$X$, 找到最小的$N$ 使得$N! > X^X$ 数据范围: $x <= 1e11$ Solution $X^X$ 太大, 高精也存不过, 所以取对数 : ...
- HDU 4455.Substrings
Substrings Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- Codeforces 749C. Voting 模拟题
C. Voting time limit per test: 1 second memory limit per test: 256 megabytes input: standard input o ...
- 超全面!UI设计师如何适配2018新款iPhone
北京时间9月13日凌晨1点,苹果在美国加利福尼亚州的Apple Park园区召开了2018年苹果秋季新品发布会. 很多人对这次科技界的春晚充满了期待,除了那些让人“剁手”的新品,设计师关注的还有新手机 ...