0

我正在为 Python 3.7.3 编写一个函数,用于测试一个数字是否是另一个数字的因子。

我尝试在互联网上进行研究,以找到一些关于如何编写一个测试分解两个未知实数的有效性的函数的想法。我最终偶然发现了因式分解和可分性之间的区别,这让我有点感兴趣。

def is_factor(f, n):
    """This function returns if f, a real number, is a factor of another
    real number n."""
    while f * f <= n:
        if f % n == 0:          
            f /= n
            #return True?
        else: f += 1 #return False?

print(is_factor(1, 15))

该函数似乎可以工作,因为 Python 返回 None,仅此而已。我希望该函数返回 True 或 False 解决方案。代码中一定有一些逻辑错误。任何反馈表示赞赏。

4

1 回答 1

2

如果您正在处理整数,请使用:

def is_factor(f, n):
    return n%f==0

如果您正在处理实数,上面的代码可以工作,但对浮点不精确非常敏感。相反,您可以除以n四舍五入后f查看是否返回:n

def is_factor(f, n, e):
    return abs(round(n/f)*f-n)<e
于 2019-05-22T14:20:12.453 回答