Espero ‘Verdadero’ pero obtendré ‘Ninguno’

Tengo un script de Python simple que comprueba de forma recursiva si un rango de n números son factores de un número x . Si alguno de los números no son factores, devuelvo False , de lo contrario, cuando n==1 me gustaría devolver True . Sin embargo, sigo devolviendo NoneType y agradecería sugerencias sobre cómo solucionar este problema.

 #Function def recursive_factor_test(x, n): if n==1: return True else: if x % n == 0: #print "passed {}".format(n) recursive_factor_test(x,n-1) else: return False #Example Expecting False print recursive_factor_test(5041,7) >>False #Example Expecting True print recursive_factor_test(5040,7) >>None type(recursive_factor_test(5040,7)) >>NoneType 

Nunca devuelve el valor de retorno de la llamada recursiva:

 if x % n == 0: #print "passed {}".format(n) return recursive_factor_test(x,n-1) 

Cuando se omite la statement de return allí, su función finaliza sin una statement de retorno, por lo que vuelve al valor de retorno predeterminado None .

Con el return allí, funciona:

 >>> print recursive_factor_test(5040,7) True