1

数値の最大の素因数を見つけるための(おそらく不器用な)関数があります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)
4

1 に答える 1