在CSDN记录学习python的第一天!嗯,也是感情陷入迷茫的一天!

 

1.找出某个范围内的素数,并把合数分解出来

思路一:

给定一个数字 x ,然后我们利用 2 ~ (x -1) 之间的每一个数字与 x 进行整除,如果出现可以被整除的情况,则这个数字就不是素数,然后循环就可以跳出去。

def prime(a,b):
    for n in range(a,b):
        for x in range(2, n):
                if n % x == 0:
                    print(n, '=', x, '*', n//x)
                    #如果是合数,则输出分解
                    break
        else:
        # 循环中没有找到因数
             print(n, '是质数')

prime(2,10)#调用函数,设置参数

 运行结果如下:

2 是质数
3 是质数
4 = 2 * 2
5 是质数
6 = 2 * 3
7 是质数
8 = 2 * 4
9 = 3 * 3

后续思路待更新……

2.素数为何物

素数,又称质数,是指除了1和它本身以外不再有其他因数的自然数。合数,是指在大于1的整数中除了能被1和本身整除外,还能被其他正整数整除的数。最小的质数是2,最小的合数是4,1既不是质数也不是合数。

ps:目前数学家找到的最大素数gif.latex?2%5E%7B77232917%7D-1,被命名为M77232917,共两千多万位,准确的说是23249425万位,比前一个发现的第二大素数多了接近100万位。仅仅是记录这个数的纯文本文件在电脑占有的内存就超过了23M。这是根据梅森素数猜想发现的,是2017年12月底由全球合作项目“互联网梅森素数搜索(GIMPS)”发现的。一位51岁的电气工程师Jonathan Pace在他的电脑上发现了这个数。自1996年开启后,GIMPS项目已经找到了16个梅森素数。GIMPS成发现者PACe将会获得3000美元奖金。并且,GIMPS称找到第一个一亿位的素数将会有15万美金的奖励,找到第一个10亿位的素数将会有25万美元奖励。

质数的个数是无穷的。欧几里得的《几何原本》中有一个经典的证明。它使用了反证法来证明。他首先假设存在有限的素数集合,用 {2,3,⋯,p} 表示,其中 p 是集合里最大的素数。 然后我们可以定义

q=(2×3×⋯×p)+1

2,3,⋯,p  是素数并且大于 1,很明显 1 不能被 2,3,⋯,p  整除。 因此, q 不能被任何素数整除,所以它是一个素数并且大于 p 。所以 {2,3,⋯,p} 不是一组完整的素数,故而出现矛盾。 因此,“素数有有限个”这一假设应被否定。

3.素数的意义

数论中的很多问题最后都可以归结为素数问题。数学家找不到素数的分布规律,写不出素数的通项公式。每一个素数相关猜想的解决,比如黎曼猜想或者bsd猜想,都会使人类文明上一个台阶。有科学家把素数的分布与量子力学的能级挂钩,猜测素数也许也是 一个量子系统(具体你可以参考卢昌海写的《黎曼猜想漫谈》)。 

素数与信息安全

素数最主要的应用在密码学-RSA加密,它在网络安全领域中相当重要,利用素数对信息进行加密可以保护国家情报和战时的军事机密,使安全性大大提高。举个例子,如果我们将信息编入几个极大的素数a、b、c,然后相乘得到数字A。对于外部人员来说,想要对A质因数分解是相当困难的——数学界也没有找到大素数的的快速质因数分解的算法。

对于这些素数的获取,数学家考虑从毫无规律的圆周率中寻找,生成拼接素数,产生真正完全的随机数字。这比电脑产生的随机数字都安全,毕竟电脑也是由程序设计出来的,产生的随机数其实并非真正的随机数。

素数与机械工业

素数之间的分布规律作用巨大!例如机械齿轮的齿数,一大一小两个齿轮的齿数都是素数,这可以增加两齿轮内两个相同的齿相遇次数的最小公倍数,说的简单一些就是能使磨损更均匀一些,可以增加耐用度减少机械故障。

以质数形式无规律变化的导弹和鱼雷可以使敌人不易拦截。

素数与生物

科学家综合考虑害虫抗药性的产生、繁殖周期以及喷洒农药后害虫对农作物的损害程度等情况,发现农药的使用周期以素数次数的使用最为合理。

许多物种的生命周期(以年为单位)和素数有一定关系。在引进新物种,提前通过生命周期和素数的关系进行演算,可以降低碰见天敌的几率。

本文科普参考文献:

1.数学家研究的素数对人类生活有什么用? (baidu.com)

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐