【算法?日更?第二十六期】非常基础的数论

  一说到基础数论,那么我们就从整除那套理论开始谈起。



▎整除

?『定义』

  如果a能把b整除,也就是没有余数,则我们称a整除b,亦称b被a整除,记为a|b。

  其中的“|”称为整除符号。

?『性质』

  ①自反性:显然,对于任意正整数n,有n|n;

  ②传递性:若有a|b,b|c,则有a|c;

  ③反对称性:若a|b,b|a,则有a=b;

  其中性质③很有用,通常用于无法直接证明a=b的情况,不过用到的少。

▎约数和倍数

?『定义』

  如果a|b,那么a是b的约数,b是a的倍数,也称a是b的因数/因子。

?『推论』

  任何数n都有两个平凡因子(1除外),即1和n;

  其余的因子称为非平凡因子。

▎质数与合数

?『定义』

  设正整数p≠0,1。如果它除了1和p外没有其他约数,那么就称p是质数,否则就是合数。

?『推论』

  若a为合数,那么a就能表示为a=pq,其中p,q>1,那么p和q一定有一个不超过√a,于是就有了判断一个数是否是质数的O(√n)算法。

原文地址:https://www.cnblogs.com/TFLS-gzr/p/11257634.html

时间: 2024-08-01 15:57:14

【算法?日更?第二十六期】非常基础的数论的相关文章

【算法?日更?第二十五期】万能算法(一):搜索+?

▎前言 看到这个标题,你是不是倍感疑惑,为什么会是搜索+,而不是搜索,会不会是小编打错的,其实本篇博客将会让你看到搜索的各种玩法. ▎前置技能 ?『基础知识』 搜索:dfs和bfs(戳这里迅速上手). ?『dfs和bfs的异同点』 相同点:dfs和bfs都用于搜索,都是来寻找点的. 不同点:dfs以深度为优先,不撞南墙不回头,一鼓作气搜遍一条路,所以比较不靠谱,但是代码量少,也好写,大部分人都喜欢用.而bfs则是以广度为优先,逐层遍历,相比dfs来说更加理性,但是当状态不好存储时,就只能用dfs

【算法?日更?第二十期】构造分治

▎什么是分治? ?『定义』 分治,字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并.在计算机科学中,分治法就是运用分治思想的一种很重要的算法.分治法是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)等等.(copy自百度) 一句话总结:分治就是把大问题转化成若干小问题,小问题解决后,大问题自然就迎刃而解. ?『使用条件』 ①大问题分解成

分布式技术追踪 2018年第二十六期

分布式系统实践 1. 十问 TiDB :关于架构设计的一些思考 https://mp.weixin.qq.com/s/m2_Mf0-x_KpPHbnOawyy2A 摘要: 文章描述的这些问题其实也是设计一个分布式存储系统通常需要考虑的问题, 尽管文章以TiDB为背景, 但是仍然对分布式系统的设计有很强的参考价值. 2. 数据库事务隔离标准分析 https://mp.weixin.qq.com/s/kZRARy099VANRfJv21-G9Q 摘要: 数据库的隔离级别是一个复杂的概念, 加上mvc

Android Studio第二十六期 - 自定义Activity中Fragment之间的传值

代码已经整理好,效果如下图:(附:copy loader的~剪刀手~) 地址:https://github.com/geeklx/MyApplication/tree/master/p018_activity_fragmenta_b

Android第二十六期 - 支付宝支付

代码已经整理好,如下图: 地址:http://down.51cto.com/data/1970025

第二十六期 黑白灰关系

搬运于:weibo.com/zpz89

第二十六章 线程基础

目录: 26.1 Windows为什么要支持线程 26.2 线程开销 26.3 停止疯狂 26.4 CPU发展趋势 26.5 CLR线程和Windows线程 26.6 使用专用线程执行异步的计算限制操作 26.7 使用线程的理由 26.8 线程调度和优先级 26.9 前台线程和后台线程 26.10 继续学习 Windows为什么要支持线程 作为一个Windows概念,线程的职责是对CPU进行虚拟化.Windows为每个进程都提供了改进程专用的线程(功能相当于一个CPU).应用程序的代码进入死循环

第二十六讲:基础一开放封闭原则

做出来的软件具有很强的扩展性,扩展并不是修改以前的源代码,而是在以前的代码之外添加新的功能. 重点是对扩展开放,对修改关闭. 银行业务员下有很多子类:负责存款的银行业务员,负责取款的银行业务员,负责转账的银行业务员.

第二十六个知识点:描述NAF标量乘法算法

第二十六个知识点:描述NAF标量乘法算法 NAF标量乘法算法是标量乘法算法的一种增强,该算法使用了非邻接形式(Non-Adjacent Form)表达,减少了算法的期望运行时间.下面是具体细节: 让\(k\)是一个正整数,\(P\)是一个在域\(F_q\)上椭圆曲线\(E\)上的点.这个计算乘法操作\(Q = k * P\)就是圆曲线上的标量乘法操作(点乘).一个最简单计算的方法就是基于双倍-加法的霍纳规则的变体.顾名思义,该方法最突出的两个构建块是点加倍和点添加原语.就像名字那样,算法也十分简