素数判断和大合数分解_因数分解(费马的方法)

触碰标题下面一行的“邵勇老师”查看所有文章;触碰“数学教学研究”, 关注本微信公众号(sx100sy)。本公众号内容均由邵勇(北京)本人独创,欢迎转发,但未经许可不能转载。每周推送两到三篇内容上有份量的数学文章,但在行文上力争做到深入浅出。几分钟便可读完,轻松学数学。 

特别声明,本人未曾授权任何网站(包括微博)、公众号或其他什么号转载北京邵勇原创的“数学教学研究”公众号的内容。 建议您一定直接关注本公众号(sx100sy),这样有什么问题可以留言交流和发消息,我会诚恳回复。未经授权而转载我文章的地方丢失了很多功能,比如留言,比如发消息到我后台。未经授权而转载我文章的地方,毕竟还存留着贯穿于我文章中的图片(比如公式),图片的右下角都有原公众号的水印“微信号: sx100sy”,通过在微信中搜索“sx100sy”,一定可以找到原始的公众号,也就是本公众号《数学教学研究》(sx100sy)并加以关注。本公众号才是良好的交流平台和文明的生态环境。

今天讲如何把一个数分解成因数的乘积。这里介绍费马的方法。我用三个具体例子来展示这个方法的运行过程。

例1:

(1)待分解的数n=10379。计算√n(指n的开平方,下同)。它不是整数,否则10379就是一个平方数了,而平方数已完成了至少一步因数分解。

(2)取大于等于√n的正整数N。可写成N=[√n]+1,其中[  ]是取整函数。显然,N^2>n。

(3)求N^2-n。然后考察它是不是平方数。注意,N^2-n应该不是很大,所以,比较容易判断它是不是平方数。若是,则问题基本解决:可设这个平方数为M^2,则有M^2=N^2-n,即n=N^2-M^2。所以根据平方差公式便得到n=(N+M)(N-M)。若不是,则继续算(N+1)^2-n,看它是不是平方数,······一直进行下去,直到出现平方数为止,或根本不出现平方数(文后会讨论这种情况)。

(4)具体来说,√10379=101.877···。取N=102,则N^2=10404,于是

N^2-n=10404-10379=25

25=5^2,是平方数。所以n=(102+5)(102-5)=107×97。分解成功。两个因数能否再分解?文后有说明。

例2:

再来看n=93343的分解。√93343=305.52···。取N=306,则N^2=93636。于是,

N^2-n=93636-93343=293

293不是平方数,因为个位数是3(有一个快速判断一个数不是平方数的简易方法,就是看它的个位数是不是2,3,7,8,若是,则这个数不是平方数。这是因为一个数的平方,其个位数永远不可能为2,3,7,8)。于是,继续算(N+1)^2-n。N+1=307。

          (N+1)^2-n=307^2-93343      

                              =94249-93343

                              =906

明显,它只比平方数900(=30^2)大一点点,而31^2=961,所以906不是平方数。继续算(N+2)^2-n,

          (N+2)^2-n=308^2-93343

                             =94864-93343

                             =1521

                             =39^2

结果是平方数。所以,

n=(308+39)(308-39)=347×269

这两个因数正好还都是素数,不能再分解了。

例3:

费马分解过更大的合数:n=2027651281。我用软件EXCEL模拟了费马的计算过程,如下表。一共进行了12步才找到符合要求的整数。

26978379176c81092b6aa2e414d77dd7.png

补充说明:

(1)我们用费马这种方法去分解的数一定是一个奇数。若是偶数,我们可以将其除以2,若结果还是偶数就再除以2,直至不再为偶数。然后我们再对这个奇数进行分解。

(2)我们可以不必知道这个待分解的奇数是不是合数,也有可能是素数。但费马的方法在进行过程中,若在某一步时成功分解,则原数是合数。这时这个合数被分解成了两个较小的奇数的乘积(两个因数必定都是奇数,因为原数是奇数)。成功分解之后,两个因数都还有可以再继续分解,可以继续用费马的方法进行,直到所有因数都为素数。

(3)很有可能费马方法进行下来,我们根本找不到某两个数它们的平方差等于原数。那么原数就是一个素数。这个是可以想得通的:因为若原数不是素数,则它一定可以写成两个奇数因数的乘积。而两个奇数的乘积是一定可以化为两个正整数的平方差的。比如,我们任意取两个奇数:359和283。计算出这两个数的差:359-283=76。这个差一定是一个偶数(奇数减奇数为偶数),所以,这个差的一半必然是整数,这里,76/2=38。那么,我们把大的奇数因数写成某数加上38,即:321+38。把小的奇数因数写成某数减去38,即:321-38。这时的两个奇数因数分别为:321+38和321-38。两项中均出现了321。这不是巧合,而是必然的,因为38是两奇数因数之差的一半。也就是说,“求差—取半...”等步骤后,两因数的乘积出现(a+b)(a-b)形式,是必然的。于是,原数就可以写成两数的两方差:a^2-b^2。所以,我们通过费马的方法,一定可以找到这对a和b。也就是说,找不到的话,就说明原数一定是素数。

(4)费马方法有局限性,它在两因数比较接近的情况下才很有效。

f718dadc1b9674312e334981737ed930.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值