【数论】勒让德定理(笔记)

  勒让德定理是用来求n!的素因子分解的一个定理,表述为:

记素数p的指数为Lp,  Lp(n!)=∑[n/pk] (k>=1) .维基百科有详细的证明

 

  一个要用到该定理的问题:uvalive 5828

求一个最大的数d,满足:

1.能分解成不同的因子,这些因子不能超过n;

2.是一个完全平方数.

输入n输出d% 1000000007

分析:

为满足完全平方数只需素分解后所有素数p的指数是偶数,因此这个最容易满足的条件我们放在最后考虑;

为了满足第一个条件,而且使d最大,极端情况就是n!了,显然这种情况下我们无法再乘入任何一个数t,使得

t*n!仍然满足条件1,然后根据勒让德定理得到n!的素分解,把素数中不为偶数的次数-1,就可以满足条件2了.

证明:

要证明这样做的正确性,只要证明它满足了条件1且无法再乘入新的数了.

1.证明能分解成不同的因子,且它们小于n:

  即证被除去的数的积F能分解成不同的因子且它们都小于n,

因为前面为保证指数为偶数,除去的素数的指数都为1,所以

F=f1*f2...*f,f都为小于n的素数,于是n!/F后相当于在阶乘时跳过了

一些素数,当然此时仍有不相同因子的分解.

2.无法再乘入新的数:

  首先证明乘入的数只能是F素分解的组合:若为F素分解以外的数它的位置必定已经被2~n

中的数占领了,于是产生重复.而如果为F素分解中的数,就无法满足每个指数都为偶数的条件.

 

你可能感兴趣的:(笔记)