[学习笔记]质数

(本篇并不适合初学者看)

质数:除1和本身之外,没有一个数能够整除它。(否则是合数)

1.质数判定:

①根号试除法。

优点:容易写,对于少量的需要判断的质数,比较可靠。

缺点:询问量一旦增多,必然效率低下。

②Miller_Robin与二次探测

见博客:Miller-Robin与二次探测

优点:速度比较快,大概,测试个数*logn 。复杂度很可观。而且误判概率极低。

而且,对于long long级别的质数,也能快速准确判断!!

缺点:你可能记不住。。

③筛法,然后暴力判断。

见博客:SIEVE 线性筛

优点:O(N)预处理,O(1)查询。N比较小而询问次数很多时,极为方便。

而且,线性筛素数,根据合数只被最小质因子筛一次的优秀性质,在处理其他函数例如$\phi$,$\mu$的时候,

也有很高的效率,而且通过判断是否是最小质因子,转移的关系也十分好写。

缺点:显然了。N比较大,直接TLE+MLE。而且,必须从2开始筛,即使你只需要一个。

 

2.质数筛法:

Eratosthenes筛法,会把每个合数处理质因子个数次。不是稳定的复杂度O(N)

线性筛就是刚才的博客:SIEVE 线性筛

 

好了,现在我们知道质数是什么、怎么找?

那么,有什么用呢?

 

3.质因数分解:

算数基本定理:P=q1^c1*p2^c2*...

其中,qi为质数,ci是非负数。这种分解方法是唯一的。

质因数分解往往是一个数学题考虑的突破口。

因为,质因数分解可以把一个数的构成完美地表示出来。

通过质数的次数相乘的表示法,很容易考虑和处理gcd,lcm等问题。

 

方法:根号试除,最后>1则是质数。

我只会这一种分解方法。

复杂度O(根号)

显然不够优秀,因为试除还会浪费一些时间。可以考虑提前预处理质数,然后用质数试除,本质上是找质因子。

也许会快一些。

比较厉害的是:Pollard_Rho,我反正没看懂。

 

*一些小应用:

质因数分解n!,直接枚举小于n质数,出现次数就是[n/p]+[n/p^2]...比较显然。

 

总结:

质数给你敞开数论的大门,走进去,就掉进了坑。

 

转载于:https://www.cnblogs.com/Miracevin/p/9698627.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eclipse中导入Java项目出现“No projects are found to import”

如图所示: , 这其实是你的项目中缺少了两个文件:.classpath文件和 .project文件 所以eclipse找不到你的项目了。 解决办法: 在你的Eclipse中再新建一个新的项目,项目的类型和项目名和你想要导入的项目名一样&am…

USB 设备驱动(写给自己看的)

集线器与控制器(USB地址7bit)设备,配置,端点,接口USB1.0(低速1.2),1.1(全速450m),2.0(高速,电流传输)区别引脚4根&#xf…

为什么tomcat在eclipse中启动了,访问不了

tomcat在eclipse中启动不了,有很多中情况。 我把这些可能出现的情况总结了起来: 原因1: 项目的发布目录没有在tomcat下的webapps文件下,导致项目启动不了。 解决:先把tomcat中的服务remove出来 然后双击test1服务…

数据库(表)导入导出备份

一、介绍逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程。逻辑恢复是指当数据库对象被误操作而损坏后使用工具import利用备份的文件把数据对象导入到数据库的过程。物理备份即可在数据库open的状态下进行也可在关闭数据库后进行,但是逻辑备份和…

Can not find the tag library descriptor for http://java.sun.com/jsp/jstl/core

在eclipse的jsp里面出现这个错误,主要是缺少.jar文件或是你的.jar版本不匹配。 主要是:JSTL.jar 和 Standard.jar 文件。 去重新下载一下,然后添加到你的lib文件里面 就不会报错了。

Android TV Overscan

本文来自网易云社区 作者:孙有军 开发的TV应用发现在部分电视上可以显示完整,而其他部分电视显示不全,周围都会遮挡了。 原因 这是因为部分老的电视有一个overscan的概览,什么叫overscan呐?官方解释如下: D…

jsp页面中出现“String cannot be resolved to a type”

右键你的项目,Build Path–>Configure Build Path 按照步骤1–>2 –>3。 然后就大功告成了。

Druid学习之路 (四)Druid的数据采集格式

作者:Syn良子 出处:https://www.cnblogs.com/cssdongl/p/9715735.html 转载请注明出处 Druid的数据采集格式 Druid可以采集非标准化的数据诸如JSON,CSV或者以某种分隔符隔开的TSV格式,当然还支持自定义格式.虽然大部分的文档使用JSON格式,但是通过druid来…

“Found interface com.mysql.jdbc.Connection, but class was expected ”

In mysql-connecter-java-5.0 Statement is a class. in 5.1, it’s an interface. The code you write shouldn’t care too much. But if you compile against the new version, then run against the old version, you’ll have this problem. 我项目中用的是5.1的版本&am…

1. 冒泡与选择排序及其比较

冒泡排序 1. 思想 冒泡排序&#xff08;Bubble Sort&#xff09;是一种交换排序&#xff0c;基本思路是&#xff1a;两两比较相邻记录的关键字&#xff0c;如果反序则交换&#xff0c;直到没有反序的记录为止。 2. 实现 2.1 初学常用的一种 public static <T extends Compar…

Java如何实现分页

先阐述一下具体的思路&#xff1a; 第一步&#xff1a;编写一个分页的类里面包含了&#xff08;第一页&#xff0c;最后一页&#xff0c;下一页&#xff0c;上一页&#xff0c;当前页&#xff0c;页码等等&#xff09;对象和方法。第二步&#xff1a;进行分页的业务处理。 &g…

删除服务中的mysql服务

以管理员身份运行命令提示符&#xff0c;然后输入sc delete mysql 这里的mysql是你服务中的mysql名&#xff08;有些可能是mysql5&#xff0c;或者之类&#xff09;。

2018.09.28 hdu5435A serious math problem(数位dp)

传送门 数位dp卡常题。 写了一发dfs版本的发现过不了233。 于是赶紧转循环版本。 预处理出f数组。f[i][j]f[i][j]f[i][j]表示前i位数异或和为j的方案数。 然后每次直接数位dp就行了。 代码&#xff1a; #include<bits/stdc.h> #define mod 1000000007 #define N 100005 #…

在有原来的数据的情况下,恢复数据库的数据

只要把mysql安装目录下的data文件中的ibdata1&#xff08;储存文件的数据&#xff09;替换&#xff0c;再把你的库名的文件&#xff08;只是表结构&#xff09;加进去。

photoshop切图

1.传统切图 &#xff08;1&#xff09;打开一个psd文件&#xff0c;选择ps左边菜单栏的裁剪工具&#xff0c;选择切片工具。首先我们对这个psd文件进行分析&#xff0c;有意识的将其划分成几个选区&#xff0c;然后通过鼠标的拖拽用切片工具将我们所需要的图案切下来&#xff0…

怎么在cmd中进入D盘下的文件夹

从cmd中进入D盘&#xff0c;在光标处输入“d:”(大小写都可以)&#xff0c;按enter进入。 进入D盘根目录后&#xff0c;如果想找到work文件夹可以在光标处输入“cd work”即可。

postgresql 高可用 etcd + patroni 之六 callback bind vip

os: centos 7.4 postgresql: 9.6.9 etcd: 3.2.18 patroni: 1.4.4 本篇blog介绍下 etcd patroni 发生切换时使用 callback 来重新设定 master 的 vip。 主要是方便自有机房或托管的&#xff0c;云环境貌似不能绑定固定的vip。 patroni 的一些参数 官方文档描述在callback时又这…

${ctx} 的那些事

JSP中路径路径繁多&#xff0c;采用绝对路径&#xff0c;${pageContext.request.contextPath} 作用&#xff1a;取出部署的应用程序名&#xff0c;这样不管如何部署&#xff0c;所有路径都是正确的。 可以在jsp中定义&#xff1a; <% taglib uri”http://Java.sun.com/js…

linux文件管理 - 系统目录结构

几乎所有的计算机操作系统都是用目录结构组织文件。具体来说就是在一个目录中存放子目录和文件, 而在子目录中又会进一步存放子目录和文件&#xff0c;以此类推形成一个树状的文件结构&#xff0c;由于其结构很像一棵树的分支, 所以该结构又被称为“目录树”。 Linux系统中也沿…

JSP传值

当从点击JSP页面中的链接时&#xff0c;会执行相关操作&#xff0c;把后台所需要的参数传递过去。 最常见的是通过form表单的形式传递。如下代码所示 <s:form action"LoginAction.action" method"post"><s:textfield label"用户名" n…