快速幂

//快速幂 x^n%p
ll qpow(ll x,ll n){ll res=1;while(n){if(n&1) res=res*x%p;x=x*x%p;n>>=1;}return res%p;//要记得模p,否则输入一个2的幂次模1就挂了
}

快速乘

//快速乘 a*b%p 防止乘法溢出ll
ll qmut(ll a,ll b,ll p){ll res=0;while(b){if(b&1) res=(res+a)%p;a=(a+a)%p;b>>=1;}return res;
}

费马大定理

欧拉定理

欧拉函数 积性

d(n)n的因子个数

\sigma(n) n的因子之和

这些都是积性的

狄利克雷卷积

设函数 $f(x)$ 和 $g(x)$ ,则他们的狄利克雷卷积 $f*g(x)=\sum\limits_{d|x}f(d)g(\frac{x}{d})$

两个积性函数的狄利克雷卷积也是积性的

杜教筛

扩展欧几里得算法:

//扩展欧几里得算法:返回 g=gcd(a,b) ,以及对应的等式 ax+by=g 的解
ll extend_gcd(ll a,ll b,ll &x,ll &y){if(a==0&&b==0)return -1;if(b==0){x=1;y=0;return a;}ll d=extend_gcd(b,a%b,y,x);y-=a/b*x;return d;
}//扩展欧几里得算法求逆元,只要求 a,mod 互质
ll inv2(ll a,ll mod){ll x,y;ll d=extend_gcd(a,mod,x,y);if(d==1)return (x%mod+mod)%mod;return -1;
}

更快的判断单独判断素数:

bool is_prime(int n)
{if(n==1) return false;if(n==2||n==3) return true;if(n%6!=1&&n%6!=5) return false;for(int i=5;i*i<=n;i+=6)if(n%i==0||n%(i+2)==0) return false;return true;
}

接近原本判断法的2倍速度。

线性筛/欧拉筛

const int MAXN=10000;
bool is_prime[MAXN+5];
int prime[MAXN+5], cntp = 0;
//实际上素数的个数大约是MAXN/ln(MAXN)个void get_prime(int n) {memset(is_prime,1,sizeof(is_prime));is_prime[0]=is_prime[1]=0;for(int i =2; i<=n; i++) {if(is_prime[i])prime[cntp++]=i;for(int j=0; j<cntp&&i*prime[j]<= n; j++) {is_prime[i*prime[j]]=0;if(i%prime[j]==0)break;}}//printf("cntp=%d\n",cntp);/*for(int i=0;i<=n;i++){if(is_prime[i])printf("%d ",i);}*/
}

转载于:https://www.cnblogs.com/Yinku/p/10489863.html

模板 - 数学 - 数论相关推荐

  1. 模板 - 数学 - 数论 - 莫比乌斯反演 - 2

    新东西: 求$\sum\limits_{i=1}^{n}|\mu(i)|$ 根据莫比乌斯函数的性质,实际上就是求$\sum\limits_{i=1}^{\lfloor\sqrt{n}\rfloor}\ ...

  2. 各种模板(数学数论字符串)

    文章目录 数学&数论 线性求逆元 exgcd excrt FFT NTT 矩阵乘法 线性筛素数 杜教筛 字符串 Trie KMP hash Manacher AC自动机 PAM SAM 广义S ...

  3. 数学/数论专题-学习笔记:狄利克雷卷积

    数学/数论专题-学习笔记:狄利克雷卷积 1. 前言 2. 一些基础函数 3. 积性函数 4. 狄利克雷卷积 5. 总结 6. 参考资料 1. 前言 狄利克雷卷积,是学习与继续探究 μ\muμ 函数和 ...

  4. 信奥中的数学 数论 第2讲 奇数和偶数

    28.891.数的奇偶 (课程6) 难度:1 登录 29.892.同奇偶 (课程6) 难度:1 登录 30.893.奇数个数 (课程6) 难度:1 登录 35.898.2位偶数 (课程7) 难度:1 ...

  5. 数学/数论专题:莫比乌斯函数与欧拉函数

    数学/数论专题:莫比乌斯函数与欧拉函数(进阶) 0. 前言 1. 前置知识 2. 正文 3. 总结 4. 参考资料 0. 前言 本篇文章会从狄利克雷卷积的角度,讨论莫比乌斯函数与欧拉函数的相关性质. ...

  6. 洛谷---数学---数论

    洛谷---数学---数论 http://www.luogu.org 单看 数学 数论 的书,纯理论,看不进,决定还是从做题开始,不明白的地方再看书,以上机训练,促进看书,同样 从 简单--->难 ...

  7. 亿些模板【数论数学】

    文章目录 前言 数论数学模板 GCD exgcd 快速幂 线性推逆元 线性推逆元(非连续) 逆元求组合数 矩阵乘法 线性筛素数-埃氏筛 线性筛素数-线性筛 线性筛欧拉-埃氏筛 线性求欧拉 龟速乘 FF ...

  8. 数学--数论--因子和线性筛 (模板)

    ACM常用模板合集 #include <bits/stdc++.h> using namespace std; typedef long long ll; #define N 500022 ...

  9. 数学--数论--随机算法--Pollard Rho 大数分解算法(纯模板带输出)

    ACM常用模板合集 #include <bits/stdc++.h> using namespace std; typedef long long ll; ll pr; ll pmod(l ...

最新文章

  1. 微生物常见20种培养基配方
  2. java poi 导出 国际化_更好用的excel国际化多语言导出
  3. 计算机系统占有率,微软继续领跑PC操作系统市场 Win10占有率突破25%
  4. BOM中的那点事-location
  5. 如何理解高并发中的协程?协程的实现和历史
  6. 【报告分享】中国城市人工智能发展指数报告.pdf(附下载链接)
  7. 数据安全对企业的重要性
  8. Python2+Selenium入门04-关于WebDriver类
  9. MySQL的主动优化和被动优化_MySQL“被动”性能优化汇总
  10. TotalCommander增加回到桌面功能
  11. MonkeyTest小结
  12. ie浏览器打不开闪退_教你修复win7IE浏览器闪退的问题
  13. 语音信号处理基础知识之频谱、相位谱、幅度谱、功率谱及语谱图
  14. foxmail群发邮件怎么发?
  15. 计算机为什么要设置用户账号密码,电脑用户名是什么意思(怎么修改及设置用户名)...
  16. git拉取代码报错update_ref failed for ref ‘ORIG_HEAD‘:cannot lock ref ‘ORIG_HEAD‘
  17. mac下安装pyinstaller
  18. jsp连接mysql购物车mvc_mvc购物车项目
  19. Unity 镜面反射
  20. 牛逼,一份基于SSM框架实现的支付宝支付功能,附完整源代码...

热门文章

  1. php 字符串进行计算_PHP eval() 函数把字符串按照 PHP 代码来计算
  2. 服务器中W3SVC1文件夹的文件,完美解决IIS 服务器无法加载应用程序 '/LM/W3SVC/1/ROOT'。错误是 '没有注册类别...
  3. 2019年工程造价表_【行业要闻】中国建设工程造价管理协会 关于2019年工程造价咨询企业造价咨询收入排名的公告...
  4. kettle oracle数据从库到库,kettle 使用oracle数据库当做资源库
  5. linux设置进程不忽略信号,Linux下后台进程编写中屏蔽信号
  6. 网站获取ip代码怎么写_大学生写论文必备技能:怎么免费获取外文文献并下载...
  7. json最大长度限制_MongoDB参数限制和阀值
  8. java restclient 调用_restclient 访问 springmvc java工程接口
  9. Android NDK开发之 opencv manage 免安装生成opencv应用
  10. Swagger 教程