前言:
今天搞了一天这个 蒙格马利 什么的,我自己肯定是搞不定,参照了很多资料,写一下自己的理解总结,防止忘了没地方看。
只是我个人的理解,对不对还得另说,一些公式还是不懂,只是大概的理解了下,各位当做参考吧
问题描述:
判断一个数是否是质数?
解题思路:
一开始我想的方法就是用For循环一个一个判断,后来看资料说这是最笨的方法,好吧,我得承认我数学太渣
下面开始介绍点要用到的知识:
1、积模分解公式:
具体的我就不说了,而且我也不太懂,记住这个就好:((A%C)*(B%C))%C=(A*B)%C 这个公式是用来求 蒙格马利 函数
举个例子:2^7%3 二的七次方模三 就可以换算成 ( (2^4%3)*(2^3%3))%3
2、用蒙格马利判断是否是质数:
例子:设要判断的数为num, 需要用若干个素数(也就是质数)做为参考数,假设某个素数集合为prime[] ,那么关键来了
如果 *素数集合中的每个素数数都能是这个式子成立* 即:prime[ ]^(num-1)%num==1,就可以大概说明num是个素数,反之则不是素数
素数集合一般50个素数就可以了(这只是据说,我也不知道),反正就是集合中的素数越多 ,越精确
代码:

本文介绍了使用蒙格马利快速幂算法判断一个数是否为质数的方法,包括积模分解公式和判断素数的思路。通过检查素数集合中的每个素数是否满足特定条件来验证质数,同时提到了代码中可能存在的问题及其解决方案。
&spm=1001.2101.3001.5002&articleId=51706552&d=1&t=3&u=a3c08b3136f6424b8a01d3fd70f6752a)
236

被折叠的 条评论
为什么被折叠?



