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