数値の最大の素因数を見つけるための(おそらく不器用な)関数がありますn
(以下)。
def largest_prime_factor(n,factor=2):
if n % factor == 0:
if n == factor:
return factor
else:
largest_prime_factor(n/factor,factor)
else:
largest_prime_factor(n,factor+1)
#Printing function output
print largest_prime_factor(600)
しかし、関数の返された出力を印刷しようとすると、単にNone
. ただし、関数に出力を出力させると(以下)、正しい答えが出力されます(5)。上記のスニペットで何が間違っていますか?
def largest_prime_factor(n,factor=2):
if n % factor == 0:
if n == factor:
print factor #Printing, not returning
else:
largest_prime_factor(n/factor,factor)
else:
largest_prime_factor(n,factor+1)
#Calling the function
largest_prime_factor(600)