首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何高效地找到合适因子的重数?

如何高效地找到合适因子的重数?
EN

Stack Overflow用户
提问于 2018-12-02 23:09:14
回答 1查看 87关注 0票数 2

我正在试着写一个代码来找出给定的数是不是n的一个适当的因子,同时我也在试着找出给定数的重数。

下面是我的代码:

代码语言:javascript
复制
def f(n, d):
    '''
    >>> f(2, 1)
    1 is not a proper factor of 2.
    >>> f(2, 2)
    2 is not a proper factor of 2.
    >>> f(16, 2)
    2 is a proper factor of 16 of mutiplicity 4.
    >>> f(100, 20)
    20 is a proper factor of 100 of mutiplicity 1.
    >>> f(8 ** 7 * 3 ** 5 * 11 ** 2, 8)
    8 is a proper factor of 61662560256 of mutiplicity 7.
    >>> f(3 ** 3 * 11 * 13 ** 2 * 40 ** 6, 8)
    8 is a proper factor of 205590528000000 of mutiplicity 6.
    '''
    multiplicity = 0
    # Insert your code here
    if d == 1:
        print(f'{d} is not a proper factor of {n}.')
    if d == n:
        print(f'{d} is not a proper factor of {n}.')
    if n % d == 0:
        copy = n
        while(copy != 1):
            copy = copy // d
            multiplicity += 1
    if not multiplicity:
        print(f'{d} is not a proper factor of {n}.')
    else:
        print(f'{d} is a proper factor of {n} of mutiplicity {multiplicity}.')


if __name__ == '__main__':
    import doctest
    doctest.testmod()

任何建议都会有很大帮助。

EN

回答 1

Stack Overflow用户

发布于 2018-12-03 21:49:49

如果我正确理解了您要做的事情,我相信这个循环的条件是错误的

代码语言:javascript
复制
while(copy != 1):
    copy = copy // d
    multiplicity += 1

您想要的是将copy除以d,只要copy是d的倍数,即

代码语言:javascript
复制
while(copy % d == 0):
    copy = copy / d
    multiplicity += 1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53581533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档