和上一题差不多,一个是μ*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 欧拉函数之和 杜教筛相关推荐

  1. 【51nod】1239 欧拉函数之和 杜教筛

    [题意]给定n,求Σφ(i),n<=10^10. [算法]杜教筛 [题解] 定义$s(n)=\sum_{i=1}^{n}\varphi(i)$ 杜教筛$\sum_{i=1}^{n}(\varph ...

  2. 杜教筛--51nod1239 欧拉函数之和

    求$\sum_{i=1}^{n}\varphi (i)$,$n\leqslant 1e10$. 这里先把杜教筛的一般套路贴一下: 要求$S(n)=\sum_{i=1}^{n}f(i)$,而现在有一数论 ...

  3. matlab狄利克雷函数,数论入门1——莫比乌斯函数,欧拉函数,狄利克雷卷积,线性筛,莫比乌斯反演,杜教筛...

    数论入门1 一个菜鸡对数论的一点点理解... 莫比乌斯函数 定义函数$\mu(n)$为: 当n有平方因子时,$\mu(n)=0$. 当n没有平方因子时,$\mu(n)=(-1)^{\omega(n)} ...

  4. 杜教筛 狄利克雷卷积入门

    补下暑假的坑 杜教筛看了两天勉勉强强才看懂了一点点 杜教牛逼 杜教筛意义 其实,对于一般的数论题,线性筛已经非常的优秀了. 但是就是有那些duliu出题人,硬是要把数据出到1e10之类的,就看你会不会 ...

  5. 杜教筛及其时间复杂度分析

    文章目录 杜教筛 方法 举例 莫比乌斯函数 欧拉函数 时间复杂度 杜教筛 杜教筛用于求一类积性函数的前缀和,时间复杂度可以做到 O(n23)O(n^{\frac{2}{3}})O(n32​). 方法 ...

  6. 欧拉函数+狄利克雷卷积+莫比乌斯函数+莫比乌斯反演+整除分块+杜教筛

    Powered by:NEFU AB-IN 文章目录 欧拉函数 狄利克雷卷积 莫比乌斯函数 莫比乌斯反演 P3455 [POI2007]ZAP-Queries 整除分块 P2522 [HAOI2011 ...

  7. Euler:欧拉函数&素数筛

    一.欧拉函数 欧拉函数是小于x的整数中与x互质的数的个数,一般用φ(x)表示. 通式:   其中p1, p2--pn为x的所有质因数,x是不为0的整数. 比如x=12,拆成质因数为12=2*2*3, ...

  8. 【数学知识】三种方法求 [1,n] 中所有数欧拉函数(线性筛欧拉函数优化至 O(n) )

    整理的算法模板合集: ACM模板 ①直接求小于或等于n,且与n互质的数个数(求[1,n]中所有数的欧拉函数时间复杂度:O(nn)O(n\sqrt{n})O(nn​)) ②求[1,n]之间每个数的质因数 ...

  9. 【模板题】欧拉函数与线性筛求欧拉函数

    欧拉函数是什么? 定义:对于正整数nnn,欧拉函数是小于或等于nnn的正整数中与nnn互质的数的个数,记作φ(n)\varphi (n)φ(n). φ(1)=1\varphi (1)=1φ(1)=1. ...

最新文章

  1. 免费报名 | 机器学习的第二次入门(入群有福利)
  2. SVN配置自启动服务碰到[SC] OpenSCManager 失败 5:解决办法
  3. Windbg 脚本命令简介
  4. .net webservice studio调用方法传参_Oracle触发器调用webservice说明
  5. 揭秘各国总统们钟爱的手机
  6. Serverless那么火,2019年的采用如何?
  7. 漫画:为什么程序员没有女友?
  8. OneGame V1.0 发布,开源免费页游联运系统
  9. 矩阵范数与向量范数的公式及其理解
  10. matlab fspecial 位置,matlab fspecial 用法解释
  11. 语音社交聊天app受欢迎的特点有哪些?
  12. myeclipse设置黑色主题
  13. 机器学习——AdaBoosting
  14. python儿童编程培训班-重庆少儿Python编程培训班
  15. 知识点四 图论:dijkstra (HDU 2544 +HDU 1874)
  16. 旋转矩阵中6保6_双色球旋转矩阵(9-12)个号中6保5公式
  17. C#获取字符串的拼音和首字母
  18. 在Ansible中缓存事实
  19. linux命令行开头是sh,shell脚本语言的使用(超全超详细)
  20. ProtoBuf与网络通信

热门文章

  1. python 40位的数减个位数_Python——进制表示与转换
  2. 计算机配置界面在那,在哪里设置关机画面?设置为原来的经典界面?
  3. linux系统引导分区,揭秘Linux(二)——操作系统引导与硬盘分区
  4. C语言Main函数到底有几种,你真的懂吗?
  5. C语言中面向对象编程
  6. 智伴机器人安卓怎么设置个人热点_周五到!!宿舍断网怎么办,教你一招
  7. clodeblocks debug断点调试_idea debug调试————简单常用,适合初学者
  8. java 异常练习题_java入门异常处理练习题问题
  9. Auto Lisp 标注子样式_CSS 核心样式
  10. 工业级光纤收发器使用“避坑”指南