摘要:
题意: 求A^B的所有正因子的和,最后模9901的结果。思路:若对一个数n进行素数分解,n=p1^a1*p2^a2*p3^a3*...*pk^ak那么n的所有正因子之和sum=(1+p1+...+p1^a1)*(1+p2+...+p2^a2)*...*(1+pk+...+pk^ak)然后可以用等比数列求和公式(pk^(ak+1)-1)/(pk-1)求每项的和,再累乘。用等比数列求1+pk+...+pk^ak时候要注意几点:1.这里有除法,所以模的时候要将除以分母转化成乘以分母的逆元a = (b/c) ==> a%m = b*c^(m-2)%m ( m为素数 )证明: b = a * c根 阅读全文
posted @ 2014-02-26 19:33
辰曦~文若
阅读(635)
评论(0)
推荐(0)
摘要:
题意:给n和k,求组合C(n,k)的因子个数。这道题,若一开始先预处理出C[i][j]的大小,再按普通方法枚举2~sqrt(C[i][j])来求解对应的因子个数,会TLE。所以得用别的方法。在说方法前,先说一个n!的性质:n!的素因子分解中的素数p的个数为n/p+n/(p^2)+...+n/(p^k)+...《ACM-ICPC程序设计系列 数论及应用》上的方法,200+ms:首先先求解435以内的素因子。然后预处理出j!中每个素因子的个数,公式如下:num[j][i]=j/prime[i]+num[j/prime[i]][i];设n!中素因子p的个数为:a=n/p+n/(p^2)+...+n/ 阅读全文
posted @ 2014-02-26 16:03
辰曦~文若
阅读(599)
评论(0)
推荐(1)
摘要:
该题没思路,参考了网上各种题解。。。。注意到凡是那种11111..... 22222..... 33333.....之类的序列都可用这个式子来表示:k*(10^x-1)/9进而简化:8 * (10^x-1)/9=L * k (k是一个整数)8*(10^x-1)=9L*kd=gcd(9L,8)=gcd(8,L)8*(10^x-1)/d=9L/d*k令p=8/d q=9L/d p*(10^x-1)=q*k因为p,q互质,所以q|(10^x-1),即10^x-1=0(mod q),也就是10^x=1(mod 9*L/d)由欧拉定理可知,当q与10互质的时候,10^(φ(q))=1 (mod ... 阅读全文
posted @ 2014-02-26 13:56
辰曦~文若
阅读(1442)
评论(0)
推荐(1)