如果数字是另一个因素,函数如何返回?

时间:2019-05-22 13:37:13

标签: function math numbers boolean factoring

我正在为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解决方案。代码中必须存在一些逻辑错误。任何反馈表示赞赏。

1 个答案:

答案 0 :(得分:1)

如果要处理整数,请使用:

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