除数的数量

时间:2012-09-03 21:40:28

标签: math division

如何找到一个数字'n'的除数的数量,它们也可以被另一个数字'k'整除而不循环遍历n的所有除数? 我尝试了以下方法:

关联数组A中n的所有素因子的存储幂并且对k做的类似,存储了数组B中所有素数因子的幂。

    ans = 1
    for a in A:    // Here a is the prime factor and A[a] gives its power
        ans *= if( a is present in B ) ? 1 : A[a] + 1
    print ans

注意:这不是作业。

2 个答案:

答案 0 :(得分:2)

要查找n可被k整除的k除数的数量:

  • 如果n不是n/k的除数,则数字为0,
  • 否则,它是d
  • 的除数

如果nk的除数,可以被d/k整除,则n/ke的除数。相反,如果n/ke*k的除数,则nk的除数,可以被ans = 1 for a in A: // Here a is the prime factor and A[a] gives its power ans *= if( a is present in B ) ? 1 : A[a] + 1 print ans 整除。

您的代码

n

计算与k相互作用的{{1}}的除数数。

答案 1 :(得分:1)

如果除数是素数,那么除了循环遍历所有除数之外别无他法。否则RSA将不会成为保存加密算法。