找到2的最大功率?

时间:2014-11-04 06:10:17

标签: python

这是我创建的代码,用于查找2因子的最大功率。我不认为这是100%正确,因为我一直得到2作为答案。我需要一些帮助来解决这个问题。我是编程新手。

我的代码:

def largestPowerOfTwoThatIsAFactorOf(num):

    factor = 2

    while not(num > 0):

        factor = factor + 1

    return factor


print(largestPowerOfTwoThatIsAFactorOf(4))
print(largestPowerOfTwoThatIsAFactorOf(15))
print(largestPowerOfTwoThatIsAFactorOf(120))

#For any odd integer, largest power of 2 that’s a factor is 1.

1 个答案:

答案 0 :(得分:-2)

def largestPowerOfTwoThatIsAFactorOf(num):
    if num % 2 != 0: return 1
    factor = 0
    while num % 2 == 0:
        num /= 2
        factor += 1
    return 2 ** factor
    ## or return factor; as per your requirement

您需要在循环内更新num。此外,您可以通过在第一个语句中检查输入是否为奇数来稍微优化代码。