51nod1244 欧拉函数之和 杜教筛
和上一题差不多,一个是μ*I=e,一个是φ*I=Id
稍改就得到了这题的代码
(我会告诉你我一开始逆元算错了吗)
1 #include <bits/stdc++.h> 2 #define MAX 5000000 3 #define MOD 1000000007 4 using namespace std; 5 long long a,b,N; 6 long long phi[MAX+1],p[MAX],ans[MAX]; 7 bool bo[MAX+1]; 8 long long work(long long n) 9 { 10 if(n<=MAX) return phi[n]; 11 if(ans[N/n]) return ans[N/n]; 12 long long ret=n%MOD*(n+1)%MOD*500000004%MOD; 13 for(long long j=2;j<=n;) 14 { 15 long long nex=n/(n/j); 16 ret=(ret-(nex-j+1)%MOD*work(n/j)%MOD+MOD)%MOD; 17 j=nex+1; 18 } 19 ans[N/n]=ret; 20 return ret; 21 } 22 int main() 23 { 24 int sum=0;phi[1]=1; 25 for(int i=2;i<=MAX;i++) 26 { 27 if(!bo[i]) 28 p[++sum]=i,phi[i]=i-1; 29 for(int j=1;j<=sum && p[j]*i<=MAX;j++) 30 { 31 bo[p[j]*i]=1; 32 phi[i*p[j]]=phi[i]*((i%p[j])?phi[p[j]]:p[j]); 33 if(i%p[j]==0) break; 34 } 35 } 36 for(int i=2;i<=MAX;i++) 37 phi[i]=(phi[i]+phi[i-1])%MOD; 38 scanf("%lld",&a); 39 N=a; 40 printf("%lld\n",work(a)); 41 return 0; 42 }
转载于:https://www.cnblogs.com/wanglichao/p/6837902.html
51nod1244 欧拉函数之和 杜教筛相关推荐
- 【51nod】1239 欧拉函数之和 杜教筛
[题意]给定n,求Σφ(i),n<=10^10. [算法]杜教筛 [题解] 定义$s(n)=\sum_{i=1}^{n}\varphi(i)$ 杜教筛$\sum_{i=1}^{n}(\varph ...
- 杜教筛--51nod1239 欧拉函数之和
求$\sum_{i=1}^{n}\varphi (i)$,$n\leqslant 1e10$. 这里先把杜教筛的一般套路贴一下: 要求$S(n)=\sum_{i=1}^{n}f(i)$,而现在有一数论 ...
- matlab狄利克雷函数,数论入门1——莫比乌斯函数,欧拉函数,狄利克雷卷积,线性筛,莫比乌斯反演,杜教筛...
数论入门1 一个菜鸡对数论的一点点理解... 莫比乌斯函数 定义函数$\mu(n)$为: 当n有平方因子时,$\mu(n)=0$. 当n没有平方因子时,$\mu(n)=(-1)^{\omega(n)} ...
- 杜教筛 狄利克雷卷积入门
补下暑假的坑 杜教筛看了两天勉勉强强才看懂了一点点 杜教牛逼 杜教筛意义 其实,对于一般的数论题,线性筛已经非常的优秀了. 但是就是有那些duliu出题人,硬是要把数据出到1e10之类的,就看你会不会 ...
- 杜教筛及其时间复杂度分析
文章目录 杜教筛 方法 举例 莫比乌斯函数 欧拉函数 时间复杂度 杜教筛 杜教筛用于求一类积性函数的前缀和,时间复杂度可以做到 O(n23)O(n^{\frac{2}{3}})O(n32). 方法 ...
- 欧拉函数+狄利克雷卷积+莫比乌斯函数+莫比乌斯反演+整除分块+杜教筛
Powered by:NEFU AB-IN 文章目录 欧拉函数 狄利克雷卷积 莫比乌斯函数 莫比乌斯反演 P3455 [POI2007]ZAP-Queries 整除分块 P2522 [HAOI2011 ...
- Euler:欧拉函数&素数筛
一.欧拉函数 欧拉函数是小于x的整数中与x互质的数的个数,一般用φ(x)表示. 通式: 其中p1, p2--pn为x的所有质因数,x是不为0的整数. 比如x=12,拆成质因数为12=2*2*3, ...
- 【数学知识】三种方法求 [1,n] 中所有数欧拉函数(线性筛欧拉函数优化至 O(n) )
整理的算法模板合集: ACM模板 ①直接求小于或等于n,且与n互质的数个数(求[1,n]中所有数的欧拉函数时间复杂度:O(nn)O(n\sqrt{n})O(nn)) ②求[1,n]之间每个数的质因数 ...
- 【模板题】欧拉函数与线性筛求欧拉函数
欧拉函数是什么? 定义:对于正整数nnn,欧拉函数是小于或等于nnn的正整数中与nnn互质的数的个数,记作φ(n)\varphi (n)φ(n). φ(1)=1\varphi (1)=1φ(1)=1. ...
最新文章
- 免费报名 | 机器学习的第二次入门(入群有福利)
- SVN配置自启动服务碰到[SC] OpenSCManager 失败 5:解决办法
- Windbg 脚本命令简介
- .net webservice studio调用方法传参_Oracle触发器调用webservice说明
- 揭秘各国总统们钟爱的手机
- Serverless那么火,2019年的采用如何?
- 漫画:为什么程序员没有女友?
- OneGame V1.0 发布,开源免费页游联运系统
- 矩阵范数与向量范数的公式及其理解
- matlab fspecial 位置,matlab fspecial 用法解释
- 语音社交聊天app受欢迎的特点有哪些?
- myeclipse设置黑色主题
- 机器学习——AdaBoosting
- python儿童编程培训班-重庆少儿Python编程培训班
- 知识点四 图论:dijkstra (HDU 2544 +HDU 1874)
- 旋转矩阵中6保6_双色球旋转矩阵(9-12)个号中6保5公式
- C#获取字符串的拼音和首字母
- 在Ansible中缓存事实
- linux命令行开头是sh,shell脚本语言的使用(超全超详细)
- ProtoBuf与网络通信
热门文章
- python 40位的数减个位数_Python——进制表示与转换
- 计算机配置界面在那,在哪里设置关机画面?设置为原来的经典界面?
- linux系统引导分区,揭秘Linux(二)——操作系统引导与硬盘分区
- C语言Main函数到底有几种,你真的懂吗?
- C语言中面向对象编程
- 智伴机器人安卓怎么设置个人热点_周五到!!宿舍断网怎么办,教你一招
- clodeblocks debug断点调试_idea debug调试————简单常用,适合初学者
- java 异常练习题_java入门异常处理练习题问题
- Auto Lisp 标注子样式_CSS 核心样式
- 工业级光纤收发器使用“避坑”指南