前言:
今天搞了一天这个 蒙格马利 什么的,我自己肯定是搞不定,参照了很多资料,写一下自己的理解总结,防止忘了没地方看。
只是我个人的理解,对不对还得另说,一些公式还是不懂,只是大概的理解了下,各位当做参考吧
问题描述:
判断一个数是否是质数?
解题思路:
一开始我想的方法就是用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&