4个C++算法数学模板(备战蓝桥杯)
文章目录
- 一、试除法判定某个数是否为质数
- 二、求最大公约数——欧几里德算法
- 三、求某个数的欧拉函数φ(n)\varphi (n)φ(n)
- 四、快速幂
一、试除法判定某个数是否为质数
时间复杂度O(N\sqrt{N}N)
//是质数返回true
bool is_prime(int c)
{if( c < 2 ) return false;for(int i = 2 ; i <= c / i ; i ++ ){if(c % i == 0) return false;}return true;
}
二、求最大公约数——欧几里德算法
时间复杂度logN
int gcd(int a ,int b)
{return b ? gcd ( b , a % b ): a ;
}
三、求某个数的欧拉函数φ(n)\varphi (n)φ(n)
求解公式:
φ(n)=n∏1i(1−1/pi)\varphi (n) = n\prod_{1}^{i} (1-1/p_{i})φ(n)=n∏1i(1−1/pi)
代码:
int phi(int x)
{int res = x ;for(int i = 2 ; i <= x / i ; i ++ ){if( x % i == 0){res = res / i * (i - 1);while( x % i == 0 ) x /= i ;}}if( x > 1 ) res = res / x * ( x - 1 );return res;
}
四、快速幂
时间复杂度O(logN)
代码:
int kmi(int a ,int b ,int p)
{int res = 1 % p;while(b){if( b & 1 ) res = res * a % p;a = a * a % p;b >>= 1; }return res;
}
4个C++算法数学模板(备战蓝桥杯)相关推荐
- 【备战蓝桥杯】 算法·每日一题(详解+多解)-- day11
[备战蓝桥杯] 算法·每日一题(详解+多解)-- day11 ✨博主介绍 前言 Dijkstra 算法 流程 网络延迟时间 解题思路 Bellman-Ford 算法 流程 K 站内最便宜的航班 解题思 ...
- 备战蓝桥杯 这样准没错!
大家好,我是大赛(不是塞),好久不见,甚是想念. 这段时间断断续续有些学弟问我参加蓝桥杯有木有一些建议,我也给了我的想法和看法.当然,网上对蓝桥杯的看法不一,我就针对大学生参与竞赛的目的和备战蓝桥杯两 ...
- 7天备战蓝桥杯之第一天
7天备战蓝桥杯之第一天 0x1 前言 无尔,只为打脸某人.(ps.本来不想玩,谁叫某人喜欢嘲笑我是个垃圾呢,mmp,没错我就是个垃圾,我最tm讨厌说实话的人了) 0x2 备战思路 以我多年的考 ...
- 备战蓝桥杯—有边数限制的最短路 (bellman_ford+)——[AcWing]有边数限制的最短路
因为近期在学图,所以顺带的写一篇最短路的备战蓝桥杯文章. 最短路(单源) 所有边权都为正数有两种算法: 1.朴素Dijkstra O(n^2) 2.堆优化的Dijkstra O(mlogn ...
- 备战蓝桥杯—枚举——[USACO Nov08]成交
农夫 John 余下了 m 批干草无法处理,他准备要开一个拍卖会去出售他的干草.现在有 n 个顾客,每个顾客的报价是 ai.现在 John 要确定一个单价,所有报价大于等于单价的顾客将会买到 1批干 ...
- 【STM32G431RBTx】备战蓝桥杯嵌入式→基本模块→I2C→M24C02
文章目录 前言 I2C 1.原理图以及配置元素 2.CubeMx的配置步骤 3.生成工程 4.测试代码 5.演示效果 总结 前言 G4板载了一块M24C02(eeprom)和一块MCP4017(可编程 ...
- 备战蓝桥杯-双指针、BFS
备战蓝桥杯所有笔记 双指针
- 【STM32G431RBTx】备战蓝桥杯嵌入式→扩展模块→SEG
文章目录 前言 一.软件准备 二.SEG 1.扩展板上模块的原理图以及我们需要配置的元素 2.CubeMx的配置步骤 三.测试代码 四.演示效果 五.工程链接 六.总结 前言 初赛结束之后就应该火速准 ...
- 【STM32G431RBTx】备战蓝桥杯嵌入式→基本模块→LED
文章目录 前言 一.软件准备 二.LED 1.G431RETx的原理图以及我们需要配置的元素 2.CubeMx的配置步骤 3.别忘了设置调试接口为SW 4.生成工程 5.测试代码 三.效果展示 总结 ...
- 【STM32G431RBTx】备战蓝桥杯嵌入式→基本模块→KEY→单击
文章目录 前言 KEY 1.原理图以及配置元素 2.CubeMx的配置步骤 3.生成工程 4.测试代码 5.演示效果 总结 前言 学完了LED和LCD后,我们开始学习按键. KEY 1.原理图以及配置 ...
最新文章
- 分布式理论、架构设计(自定义RPC)
- Qt实现延时sleep函数功能
- 运行Qt程序的一些注意事项
- 扎根中国20年,F5“代码到用户”线上峰会盛大启幕
- 有序数组的平方(力扣)
- spider-抓取网页内容(Beautiful soup)
- 易语言数据类型与c 对照,详解易语言中的数据类型
- 小甲鱼c语言_C语言可以不用,但是不能不会!
- 计算机网络技术——VLAN划分
- python done()什么意思_turtle.done()的作用是什么
- 超简单一行代码实现应用双开,仿照微信双开、QQ双开等实现app应用双开,即采用Android插件化开发在免安装情况下加载使用原生app
- 服装行业ERP体系的主要好处
- 自定义数据集(Pokemon)实战
- PDF文件拆分合并器PDF Merge PDF Splitter + Mac
- ion-slides 图片只能滑动一半、图片索引错误导致图片显示错误(缓存问题导致的)
- PHPcurl请求很慢解决办法
- VB:SysInfo控件
- java中集合的分类以及集合的选择
- js编码书写规范(自学习用)
- 图像sensor的工作原理
热门文章
- js监听只读文本框_javascript 监听文本框输入
- DeepFaceLab:视频中有多人,仅替换特定人脸的方法!
- 【JZOJ 5424】【NOIP2017提高A组集训10.25】凤凰院凶真
- linux磁盘空间满如何清理,linux磁盘空间不足怎么办,磁盘清理方法
- Linux清理磁盘空间常用命令
- win10内置ubuntu, “指定的网络名不再可用”解决办法
- liunx 操作系统的区别和之间的关系
- 不同的国际学校课程毕业后可申请什么学校
- 泰勒公式系列之二—完整公式推导
- 金融反欺诈(项目练习)