零是质数吗有哪些性质?

其实在生活中,有很多概念和常识性的知识都是大多人不知道的,比如30的因数是什么,这也说明大家逐渐关注起因数是什么,那么30的因数有哪些?跟着小编的脚步一起往下看看吧。

30的因数一共有8个,分别是1、2、3、5、6、10、15、30。在数学中,两个正整数相乘,那么这两个数都是积的因数,也叫做约数,比如2×6=12,那么2和6就是12的因数,因为12是2的倍数,同时也是6的倍数,30的因数就是1×30、2×15、3×10、5×6。

两个正整数相乘,这两个数就叫做积的因数,就是一整数被另外一整数整除,那么后者为前者的因数,比如1、3、5、15都是15的因数,而1、2、5、10为10 的因数。如果是将一个合数分为好几个质数相乘的形式,这几个质数就是这个合数的质因数。

1只有因数1,所以其不是质数也不是合数。

合数是除了1和它本身还有其它正因数。

质数是恰好有两个正因数的自然数。

1个非零自然数的正因数的个数是有限的,其中最小的是1,最大的是它本身。

所有不为零的整数都是0的因数(具有争议)。

整除是指两个整数相除余数为0。

除0以外,如果两个自然数只有公因数1,那么就叫做互质数。

  • 张三丰是一位具有传奇色彩的人物,关于它的塑造在各个版本电视剧中均有体现,他开创了武当派成为了武当祖师,在武功造诣上登峰造极,创立了太极拳,以至于现在许多广场都在练...

  • 世界上有很多令你无法想象事情,或许你可以认为根本不可能却变为可能,正如李宁品牌那句一切皆有可能。今天本问要讲述是一个国家—泰国,对于这个国家最为盛名就是人妖了。可...

  • 说起731部队,广大的中国同胞是深恶痛疾的,它在抗日战争和第二次世界大战期间不知道残害的多少中国人,是日本法西斯侵略东北阴谋发动细菌战争期间屠杀中国人民的主要罪证之一...

  • 还记得2012年的周小玲辣条尸油事件吗?那几年的食品安全问题闹得沸沸扬扬的,而用尸油加工食品也成了全国人民关注的对象,毕竟食用尸油可不是一件小事。据说周小玲的辣条是用尸...

  • 云顶天宫是盗墓笔记中的一座天墓,按常理来说在现实生活中是不可能存在的,但是近期却在网上流传出有人在飞机上拍到了天宫,这个消息传出去之后,不少人都为之惊呆,没想到传...

  • 在2004年,人类天文学家发现了一颗小行星直奔地球而来,预计在2036年与地球交锋,有二十五万分之一的几率与地球相撞,别看这个几率小,在天文上这已经是非常可观的数字了。人类...

  • 霍金为人类的发展做出了巨大的贡献,所以对于霍金的言论都十分的看重。在2011年霍金在接受美国以访谈节目采访时,对地球的未来做出了五大预言,霍金预言实现过几次呢?目前还没...

  • 在电影《异形》中,有一种外星寄生虫叫做抱脸虫,相信看过这部电影的朋友都被它恶心到了。在现实中,也有一种恶心的外星寄生虫。它们会寄生在鱼类的舌头上,不断蚕食最终取代...

  • 如今,亚特兰蒂斯已经成为了水下世界的代名词,因为在传说中,亚特兰蒂斯大陆在九千年前遭遇了一场自然灾难,使得整个大陆沉入了海底。亚特兰蒂斯真的存在吗!?这已经困扰了考...

  • 泰国是信仰佛教的国度,认为许多东西都是可以为自己带来好运的,除了普遍的佛牌之外,最为盛行的就是泰国镀金婴尸,据说是用婴儿的尸体制造而成的,就像印度的木乃伊一样,用...

}

写这篇文章完全是有感而发,很小的时候就知道有质数这么一个东西,它不能被分解,做数学题计算的时候也是最怕遇到这个东西,遇到了证明它除不尽了,得出来的答案很可能就不是正确答案了。但是最近在 上面做了几道质数相关的编程题,感觉自己知道的还是太少,今天就简单介绍一些质数的基本性质,然后结合几道编程题来看看吧。


维基百科上面给出的质数的定义是 “除了 1 和自身外,无法被其他自然数整数的自然数”,这个定义你可能很早很早的时候就理解了,但是我要往深了问,你可能一下子不能马上反应过来,比如问题 “如何快速判断给定的一个数是不是质数?”,还有 “质数在所有的数中分布是怎样的,我们怎么通过算法高效地找到他们?”,这些问题其实某些时候很有用,比如如果我们知道一个数是质数,我们就知道它不能被更小的数整除,我们就会对我们写的程序计算更有把握,另外有一点很重要的就是所有大于 1 的自然数都可以写成质数的乘积,比如 4 = 2 * 2, 15 = 3 * 5, 20 = 2 * 2 * 5 ...,你会发现一个数我们可以用一个质数的集合(允许有重复的元素)来表示,换句话说只要我们找到了一个范围内的所有质数,那么这个范围的所有数都可以通过这些质数来求得,现在看来质数是自然数的基石。

接下来我们看一下质数的一些基本的性质,对于你理解质数会更有帮助:

  • 除了 2 以外,所有的质数都是奇数
  • 所有大于 3 的质数都可以写成 6k +/- 1 的形式
  • 任意一个大于 1 的自然数 n,最多只能有一个,除其本身外,大于 的质数因子

这些东西不难,但是很有意思,我们一条一条看,首先第一条,这个不难理解,除了奇数就是偶数,偶数都会被 2 整除,那么大于 2 的偶数就会有 2 这个质数因子,因此偶数一定不是质数,奇数不一定是质数

看到第二条,你可能会打个问号,真的吗?注意这里 6k +/- 1 只是 “一个数是质数” 的必要条件,并不是充分条件,也就是说只要是质数就必须满足 6k +/- 1,但是满足这个条件的数不一定是质数,比如 25 就不是质数。你可能会问为什么是这样,其实证明也非常的简单,一个数不能被写成 6k +/- 1,那它肯定能被写成 6k +/- 2, 6k +/- 3, 6k +/- 4,一看看过去,你发现这三个表达式都是有质数因子 2 或者 3 的,因此他们表示的数肯定不是质数。

最后一条可以帮助我们缩小我们寻找一个数的质数因子的范围,比如你判断 101 这个数是不是质数,你只需要考虑这个数能不能整除 2 ~ 10 这个范围内的数,是不是一下子把搜索的时间降下来了?为什么这个性质成立呢?我们知道一个数可以写成几个或者多个数的乘积,比如 a = b * c = * ,假如 b > , 那么 c 肯定是要比 小的,不然等式不成立,这样我们只需要在 2 ~ 的范围内寻找质数因子 c 即可,注意我这里说的是质数,不是 2 ~ 内所有的数。接下来,我们来看几道实际的编程题来理解一下这些性质具体有啥用。


给定一个数,求这个数的最大质数因子,比如 100 的最大质数因子是 5。

很直接的一道题,最暴力的解法就是找到给定数范围内的所有质数,然后从大到小去看这些质数是不是给定数的因子,如果是就直接返回。这种解法既耗空间又耗时间,而且题目并没有要求我们找出所有的质数,更好一点的解法是根据性质来看,任何数都可以表示成质数乘积的形式,比如给定一个数 a,可以分解为 b c d e 三种质数,a = b * c * d * b * c * e,这样我们就从小到大一个个排除就行了,废话不多说,先上代码

这里我应用了两个之前提到的性质,就是所有的偶数都不是质数,你可以看到第二个 for 循环从 3 开始,逐次加 2,这样可以保证跳过偶数,当然写的极致一些的话,你可以考虑应用上面提到的 “所有的质数都可以表示成 6k +/- 1” 这个性质,这里应用的另外一个性质就是,一个数大于 的质数因子最多只可能有一个,这样我们只需要考虑去整除小于或等于 的质数,如果有大于 的质数因子的话,那么除剩下来的就是,这样又节省了不少时间。有些人可能会问,你怎么能保证你除的都是质数,如果不是质数怎么办?这个很好解释,之前提到过,所有的数都可表示成质数的乘积,从小到大,每次遇到的数如果不是质数,那么这个数可以拆成比自身小的质数,这些质数早在之前就约掉了,所以这里不需要过多的考虑。


这次是真的要找质数了,这个是没辙的,从头到尾找,因为质数的分布其实是没有啥规律的(至少目前还没有发现),但是应用上面提到的一些性质能够让这个寻找的过程变得高效,我们一起来根据代码看看:

这里我一开始创建了一个 list 来存当前找到的质数。为什么要找之前所有的质数,其实这个不是必要的,但是所有的数都可以写成质数的乘积,如果你当前考虑的数没有任何一个质数因子,那么说明当前考虑的数是质数,注意这里我们只需要考虑质数因子,因此需要用 list 记录质数,不然又得回头去一个个看,重复考虑之前找到的数,这样就会浪费时间,所以记录还是很有必要的。另外第二层 while 循环还是应用了之前的性质去缩小考虑范围。


计算出 2 百万以下所有质数的和

这题和上面一题没啥特别的地方,还是找,直接上代码:

以上就是这次分享的全部内容,是不是对质数的认识又加深了一点,感觉一些看似简单、普通的数学性质的的确确可以为程序运行效率带来质的飞跃。这里再次推荐 这个刷题网站,至于在这个上面做题对自身能力提升有何帮助,可以参考本期 ARTS 的 review 的部分的一篇文章
}

我要回帖

更多关于 历届世界杯每场平均进球数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信