摘要: 【问题描述】 求sigma(gcd(i,n)),1 <= i <= n.(n <= 10^9)【分析】 枚举i必然TLE。 换个角度,我们枚举gcd(i,n) = k,然后统计满足gcd(i,n) = k的i的个数。 gcd(i,n) = k的个数为phi(n/k)。phi(n/k)表示1到n/k中与n/k互质的个数。若一个数j与n/k互质,则j * k 与 n 的gcd为k。 于是sigma(gcd(i,n)) = sigma(k * phi(n /k)),k | n。 这样我们只要枚举n的约数就行了。但实际上这样复杂度还是很高,我们可以优化。我们可以考虑将枚举约数变为枚举 阅读全文
posted @ 2013-01-20 21:48 N_C_Derek 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】 求sigma(lcm(i,n)),1 <= i <= n。【分析】 跟求sigma(gcd(i,n)) 有点像(POJ2480Longge's problem),都是枚举n的约数。 首先有个性质,在1到n中与n互质的数都是成对出现的,且他们的和为n * phi(n) / 2。 例如30,在1到n中与30互质的数有1,7,11,13,17,19,23,29.其中1 + 29= 30,7 + 23 = 30,11 + 19 = 30,13+17 =30。(1是例外,虽然2也是例外,phi(2) = 1,但是结果是一样的) 所以,当gcd(i,n) = k,sigm 阅读全文
posted @ 2013-01-20 20:58 N_C_Derek 阅读(350) 评论(0) 推荐(0) 编辑