Math 除数

Math 除数,math,division,Math,Division,如何在不遍历n的所有除数的情况下,找到一个数“n”也可被另一个数“k”整除的除数数? 我尝试了以下方法: 在联合数组A中存储n的所有素数因子的幂,在数组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 注意:这不是

如何在不遍历n的所有除数的情况下,找到一个数“n”也可被另一个数“k”整除的除数数? 我尝试了以下方法:

在联合数组A中存储n的所有素数因子的幂,在数组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

注意:这不是家庭作业。

如果除数是一个素数,那么除了遍历所有除数之外,没有其他方法。否则将不是保存加密算法。

要查找可被
k
整除的
n
的除数,请执行以下操作:

  • 如果
    k
    不是
    n
    的除数,则数字为0
  • 否则,它是
    n/k
    的除数
如果
d
是可被
k
整除的
n
的除数,则
d/k
n/k
的除数。相反,如果
e
n/k
的除数,则
e*k
是可被
k
整除的
n
的除数

你的代码

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

互素的除数,如果这是作业,则应添加标记。另外,请告诉我们您已经尝试过什么为什么要将
ans
乘以幂+1?您想要除数还是除数的乘积?在你的问题中,你说你想要这个数字,但事实上,你是在乘法来建立你的答案,这让我觉得你可能想要它们的乘积。一般来说,要得到除数的数量,我们需要乘以它的所有素数的(1+幂)。哦,我明白了。我还以为你要计算它的所有素因子呢。