具有2的指数的偶数的数量

问题描述 投票:0回答:2

假设我给了数字n。我想找出所有小于n的偶数,并且在素数分解中的指数也大于2在n素数分解中的指数。]

如果n = 18,答案是4,即4,8,12,16。

使用从i = 2到小于n的for循环并检查每个i将显示代码中超出了时间限制。

我的方法是不计算任何次数,我将继续除以2。但是约束n = 10 ^ 18。因此,我认为它是O(1)运算。谁能帮助我找到任何公式或算法来尽快找到答案?

假设我给了数字n。我想找出所有小于n的偶数,并且其素因数分解中的指数也要比......>

algorithm math primes prime-factoring
2个回答
0
投票

您的除法受到常数64(对于10 ^ 18〜2 ^ 64)的限制,并且在复杂性理论中O(64)= O(1)。

值分解中的2的数量等于该值的二进制表示形式中的尾随零位的数量,因此您可以使用位操作(例如& 1和右移shr, >>)来加快编码速度或应用一些bit tricks


0
投票

首先假设n

© www.soinside.com 2019 - 2024. All rights reserved.