摘要:
将N!表示成N!=p1^t1*p2^t2*…pi^ti…*pk^tk(其中p1,p2……pk是素数,1<N<=10^6)显然很容易通过素数筛选求出pi,因为1<pi<=N,关键是如何快速地求出ti。我们先来看一下对于2这个素因子,把N!分成两部分,即奇偶两部分假设N是偶数N!=1*2*3*4*5……N=(2*4*6……)*(1*3*5……)因为有N/2个偶数,所以偶数部分可以提出N/2个2,=2^(N/2)*(1*2*3*……N/2)*(1*3*5*……)=2^(N/2)*(N/2)!*(1*3*5*……)看到了吗!神奇的事情发生了,N规模的问题转化成了N/2的问题了。 阅读全文