常用数论的算法模板

  • 一、质因子
  • 二、质数
  • 三、约数
    • ① 试除法求一个数所有约数
    • ② 求约数个数
    • ③ 求约数和
    • ④ 求最大公约数
      • <1> gcd辗转相除
      • <2> 扩展欧几里得
      • <3> 反素数
      • <4> 同余定理
      • <5> 费马小定理(快速幂求逆元)
  • 四、余数
  • 五、组合数
    • ① DP求组合数
    • ② 逆元求组合数
    • ③ 卢卡斯定理求组合数
    • ④ 高精度大数求组合数
  • 六、快速幂

  苟蒻发文,若有任何不足、错误的地方欢迎大佬们来斧正~本苟蒻不胜感激(>人<;)

一、质因子

  定义: 指能整除给定正整数的质数
  性质: 1没有质因子,每个正整数都能够以唯一的方式表示成它的质因数的乘积
  举例: 360 = 2 × 2 × 2 × 3 × 3 × 5 = 23 × 32 × 5,表示成了质因数乘积

时间复杂度: O(logn),最坏为O(n\sqrt{n}n​)
算法思想: 从小到大枚举 n 的所有约数,假设枚举较小的那个 p,则 n 中最多只包含一个大于 n\sqrt{n}n​ 的质因子,如果枚举结束,n 还大于1,那么说明这就是那个大于 n\sqrt{n}n​ 的质因子,由性质的证明如下图。在筛质数的过程中,用的是欧式线性筛法

【算法竞赛模板】质因子、质数、约数、余数、快速幂(数论大全)相关推荐

  1. Java实现 蓝桥杯 算法提高 Monday-Saturday质因子

    试题 算法提高 Monday-Saturday质因子 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 这个问题是个简单的与数论有关的题目,看起来似乎是"求正整数的所有质因子 ...

  2. 蓝桥杯 ADV-287 算法提高 Monday-Saturday质因子

    算法提高 Monday-Saturday质因子 时间限制:1.0s   内存限制:256.0MB 问题描述 这个问题是个简单的与数论有关的题目,看起来似乎是"求正整数的所有质因子" ...

  3. 51nod 算法马拉松18 B 非010串 矩阵快速幂

    51nod 算法马拉松18 B 非010串 矩阵快速幂 非010串 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 如果一个01字符串满足不存在010这样的子串,那么称它为非010串 ...

  4. 蓝桥杯试题 算法提高 Monday-Saturday质因子

    资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 这个问题是个简单的与数论有关的题目,看起来似乎是"求正整数的所有质因子",但实际上并不完全是这样. 本题中需要定义 ...

  5. 试题 算法提高 Monday-Saturday质因子

    这个问题是个简单的与数论有关的题目,看起来似乎是"求正整数的所有质因子",但实际上并不完全是这样. 本题中在这里插入代码片## 标题需要定义以下几个概念: 1. Monday-Sa ...

  6. 快速幂算法c语言求a的n次方,快速幂运算模板(求n^k以及前几位或后几位)

    计算n^k的结果 步骤: 1.把n由十进制转换为二进制,按二进制来计算(最后结果还是一样的) 2.把n由二进制转换为2^k相加的形式 先举个例子: 求5^22: 接着就可以很好地理解了 O(logn) ...

  7. java算法竞赛:StringBuilder更省空间更快速

    参考文章:Java StringBuffer 和 StringBuilder 类      String.StringBuffer与StringBuilder之间区别 用java写代码时,总会一不小心 ...

  8. 蓝桥杯 算法提高 递推求值(矩阵快速幂)详解

    传送门 问题描述 已知递推公式: F(n, 1)=F(n-1, 2) + 2F(n-3, 1) + 5, F(n, 2)=F(n-1, 1) + 3F(n-3, 1) + 2F(n-3, 2) + 3 ...

  9. 【算法】求n的m次方(快速幂取模)

    题目 求n的m次方,n,m均为自然数. 解析 看似简单的题目,但是要想写的高效还不是那么容易想出来. 实现 unsigned int power(unsigned int a, unsigned in ...

最新文章

  1. SATA硬盘如何使用GHOST
  2. DL之DNN:利用DNN算法对mnist手写数字图片识别数据集(sklearn自带,1797*64)训练、预测(95%)
  3. 什么相片可以两张弄成一张_手机修图教程 | 如何不着痕迹地给相片添加优雅手写字体?...
  4. python缩进编码教程_python基础语法教程:行与缩进
  5. C++技能的4种方法
  6. 2019ICPC(徐州) - Colorful String(哈希+二分+动态规划/回文自动机)
  7. 菜鸟裹裹电脑版_【绵阳最新转让】3500低价出售家用制氧机!东芝i5笔记本电脑、索尼微单相机、联想笔记本电脑、奶茶店、服装店转让......
  8. python文件处理seek()方法的参数是,在Python中操作文件之seek()方法的使用教程
  9. JS进阶Date format(日期格式化)
  10. 大话数据结构4 - 初识单链表
  11. 国科大UCAS大气物理期末复习笔记/大气物理基础入门
  12. 人均GDP将破1万美元对中国意味着什么?
  13. 究竟什么是电脑蠕虫病毒,电脑蠕虫病毒解析
  14. 学编程考计算机二级,如何通过计算机一、二级考试?方法很重要,过来人的经验告诉你...
  15. SATA,SAS,SSD 读写性能测试结果
  16. 新书推荐 |《深入浅出Serverless:技术原理与应用实践》
  17. Nmap使用技巧总结
  18. huge形式_huge什么意思怎么读
  19. [营销]浅谈如何提高网站PR值
  20. javascript getDate()方法

热门文章

  1. ESB和SOA到底是什么?
  2. 一文搞懂戴克斯特拉算法-dijkstra
  3. php招生广告语,学校招生广告语大全
  4. iview 表格时间格式化
  5. Infinite-Scroll无限滚动加载数据
  6. oracle roadrunner,Dreamweaver CS3 For ASP 数据库连接
  7. 移动互联网白皮书:Android 占到主导地位
  8. 采用itextpdf、xmlworker实现HTML转PDF
  9. 思科路由器PPOE client+NAT解决地址回流问题测试
  10. 【vn.py学习笔记(五)】vn.py Base、Log、Oms、Email Engine源码阅读