【发布时间】:2020-06-05 12:39:35
【问题描述】:
假设我给了一个数字 n。我想找出所有小于 n 的偶数,并且其素数分解中 2 的指数大于 n 的素数分解中 2 的指数。
如果 n=18 答案是 4,即 4,8,12,16。
使用从 i=2 到小于 n 的 for 循环并检查每个 i 将在代码中显示超出时间限制。
我的方法是计算我将继续除以 2 的次数。但 n=10^18 的限制。所以,我认为它是一个 O (1) 操作。谁能帮我找到任何公式或算法以尽快找到答案?
【问题讨论】:
-
您要数一数有多少个数,还是要全部打印出来?
-
IIUC 我的回答应该满足您寻找的解决方案
-
我更新了我的答案,以展示如何获得计数,并在底部提供了一些示例。
标签: algorithm math primes prime-factoring