[英]Finding the Sum of divisors of a big factorial number?
我试图想出一个有效的方法来列出一个大因子的所有除数。 我们说1000! 蛮力是不可能的。 有效的方法吗? 我需要处理它们,即找到它们用于编程挑战的总和。
以下是有效解决方案的步骤:
N! 可以表示为: - n! =(a1 ^ p1)(a2 ^ p2)x ...(ak ^ pk)。
其中ak是小于n的素数除数,pk是可以除n的最高幂。
通过筛子找到素数和最高功率可以很容易地找到:
countofpower = [n/a] + [n/a^2] + [n/a^3] +...... or ` while (n) { n/ = a; ans += n }
因子数= (ans1 +1)*(ans2 +1)*....(ansk +1)
计算完这最后一步后的总和是:
SUM = product of all (pow(ak,pk+1)-1)/(ak-1); ex = 4! 4! = 2^3 * 3^1; count of factors = (3+1)*(1+1) = 8 (1,2,3,4,6,8,12,24) sum = ( 1 + 2 + 4 + 8)*(1 + 3) = 60.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.