我需要编写一个函数:has_divisor_smaller_than(n, i)
,它检查n的除数是否小于i(!= 1)
我需要在没有循环和使用递归的情况下这样做。
这是我到目前为止所做的,但它不起作用:
def has_divisor_smaller_than(n, i):
if i == 1:
return False
elif n % i == 0:
return True
elif has_divisor_smaller_than(n, i - 1):
return True
else:
return False
答案 0 :(得分:2)
代码应该有效。但你甚至可以进一步完善它。基本上,你不需要最后两个if-ifs。
def has_divisor_smaller_than(n, i):
if i-1 == 1:
return False
elif n % (i-1) == 0:
return True
return has_divisor_smaller_than(n, i - 1)
现在有两种方法可以处理smaller than
条件:取(n,i)并使用i-1进行计算,如上所述或pass(n,i-1)在下面声明的函数中。
def has_divisor_smaller_or_equal_to(n, i):
if i == 1:
return False
elif n % (i) == 0:
return True
return has_divisor_smaller_or equal_to(n, i)