オンラインクラスで、私はこの問題を受け取りました。数値が持つ除数の数を出力する簡単な再帰関数を作るにはどうすればよいですか?
Nを均等に分割する1からNまでの整数を返す関数numDivisors(N)を記述します。たとえば、numDivisors(42)は1,2,3,6,7,14,21,42が42の約数なので8を返します。(Python 2.7)
私はループで解決しましたが、私は再帰でこれについてどうやって行くのだろうと思っています。
ループでこの関数の基本的な機能は次のようになります。
def numDivisors(N):
""" returns # of integers that divide evenly into N """
divisors = 1 # the factor 1
if N != 1:
divisors += 1 # the factor N
for i in range(2,int(N)): # loops through possible divisors
if N % i == 0: # factor found
divisors += 1
return divisors
どのように私は(内包表記を一覧表示する宣言、条件分岐、ループなどアップ)裸の基礎を使用して再帰的にそれを実装するだろうか?
ありがとうございます!
'N'は完璧な正方形である場合、それは平方根をミス、例えば'' N = 4' - > 'set([1,4])'、 'N = 9' - >' set([1、9]) 'などです。 – mhawke