模板 - 数学 - 数论
快速幂
//快速幂 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
模板 - 数学 - 数论相关推荐
- 模板 - 数学 - 数论 - 莫比乌斯反演 - 2
新东西: 求$\sum\limits_{i=1}^{n}|\mu(i)|$ 根据莫比乌斯函数的性质,实际上就是求$\sum\limits_{i=1}^{\lfloor\sqrt{n}\rfloor}\ ...
- 各种模板(数学数论字符串)
文章目录 数学&数论 线性求逆元 exgcd excrt FFT NTT 矩阵乘法 线性筛素数 杜教筛 字符串 Trie KMP hash Manacher AC自动机 PAM SAM 广义S ...
- 数学/数论专题-学习笔记:狄利克雷卷积
数学/数论专题-学习笔记:狄利克雷卷积 1. 前言 2. 一些基础函数 3. 积性函数 4. 狄利克雷卷积 5. 总结 6. 参考资料 1. 前言 狄利克雷卷积,是学习与继续探究 μ\muμ 函数和 ...
- 信奥中的数学 数论 第2讲 奇数和偶数
28.891.数的奇偶 (课程6) 难度:1 登录 29.892.同奇偶 (课程6) 难度:1 登录 30.893.奇数个数 (课程6) 难度:1 登录 35.898.2位偶数 (课程7) 难度:1 ...
- 数学/数论专题:莫比乌斯函数与欧拉函数
数学/数论专题:莫比乌斯函数与欧拉函数(进阶) 0. 前言 1. 前置知识 2. 正文 3. 总结 4. 参考资料 0. 前言 本篇文章会从狄利克雷卷积的角度,讨论莫比乌斯函数与欧拉函数的相关性质. ...
- 洛谷---数学---数论
洛谷---数学---数论 http://www.luogu.org 单看 数学 数论 的书,纯理论,看不进,决定还是从做题开始,不明白的地方再看书,以上机训练,促进看书,同样 从 简单--->难 ...
- 亿些模板【数论数学】
文章目录 前言 数论数学模板 GCD exgcd 快速幂 线性推逆元 线性推逆元(非连续) 逆元求组合数 矩阵乘法 线性筛素数-埃氏筛 线性筛素数-线性筛 线性筛欧拉-埃氏筛 线性求欧拉 龟速乘 FF ...
- 数学--数论--因子和线性筛 (模板)
ACM常用模板合集 #include <bits/stdc++.h> using namespace std; typedef long long ll; #define N 500022 ...
- 数学--数论--随机算法--Pollard Rho 大数分解算法(纯模板带输出)
ACM常用模板合集 #include <bits/stdc++.h> using namespace std; typedef long long ll; ll pr; ll pmod(l ...
最新文章
- 微生物常见20种培养基配方
- java poi 导出 国际化_更好用的excel国际化多语言导出
- 计算机系统占有率,微软继续领跑PC操作系统市场 Win10占有率突破25%
- BOM中的那点事-location
- 如何理解高并发中的协程?协程的实现和历史
- 【报告分享】中国城市人工智能发展指数报告.pdf(附下载链接)
- 数据安全对企业的重要性
- Python2+Selenium入门04-关于WebDriver类
- MySQL的主动优化和被动优化_MySQL“被动”性能优化汇总
- TotalCommander增加回到桌面功能
- MonkeyTest小结
- ie浏览器打不开闪退_教你修复win7IE浏览器闪退的问题
- 语音信号处理基础知识之频谱、相位谱、幅度谱、功率谱及语谱图
- foxmail群发邮件怎么发?
- 计算机为什么要设置用户账号密码,电脑用户名是什么意思(怎么修改及设置用户名)...
- git拉取代码报错update_ref failed for ref ‘ORIG_HEAD‘:cannot lock ref ‘ORIG_HEAD‘
- mac下安装pyinstaller
- jsp连接mysql购物车mvc_mvc购物车项目
- Unity 镜面反射
- 牛逼,一份基于SSM框架实现的支付宝支付功能,附完整源代码...
热门文章
- php 字符串进行计算_PHP eval() 函数把字符串按照 PHP 代码来计算
- 服务器中W3SVC1文件夹的文件,完美解决IIS 服务器无法加载应用程序 '/LM/W3SVC/1/ROOT'。错误是 '没有注册类别...
- 2019年工程造价表_【行业要闻】中国建设工程造价管理协会 关于2019年工程造价咨询企业造价咨询收入排名的公告...
- kettle oracle数据从库到库,kettle 使用oracle数据库当做资源库
- linux设置进程不忽略信号,Linux下后台进程编写中屏蔽信号
- 网站获取ip代码怎么写_大学生写论文必备技能:怎么免费获取外文文献并下载...
- json最大长度限制_MongoDB参数限制和阀值
- java restclient 调用_restclient 访问 springmvc java工程接口
- Android NDK开发之 opencv manage 免安装生成opencv应用
- Swagger 教程