递归检测数字是否为阶乘

Detect if number is factorial recursively

需要创建一个函数来评估特定数字是否为阶乘。

为此,我构建了以下内容,并且正在运行

def is_factorial(n):
    i = f = 1
    while f < n:
        i += 1
        f *= i
    return f == n

然而,现在我需要让它递归,但我正在努力。

到目前为止,我已经设法做到了以下几点

def isFactorial(m):
    def factorial(x):
        if x == 0:
            return 1
        else:
            return x * factorial(x - 1)
    
    if m == 1:
        return True 
    elif m == 720:
        return True
    else:
        factorialnumbers = []

感谢任何帮助。

编辑:抱歉,我忘了指定该函数应该只输入一个整数。

def is_factorial(n, i=1):
    n = n/i
    if n == 1:
        return True
    if n < 1:
        return False
    i += 1
    return is_factorial(n, i)


print(is_factorial(24))

你可以做到

def isfact(m,n):
  def fact(n):
      if n==1 or n==0:
          return 1
      else:
          return n*fact(n-1)
  if fact(n) == m:
      return True
  else:
      return False