Hello guys , for my homeworks i need to create a recursive procedure for x_(k+1)=p(x_k)-x_k. x_k is some number and p(x_k) is defined as the sum of all number that can divide x_k. At the end the code for the sum looks like this. x_k=sumdivisorGenerator(n)
def divisorGenerator(n):
large_divisors = []
for i in xrange(1, int(math.sqrt(n) + 1)):
if n % i == 0:
yield i
if i*i != n:
large_divisors.append(n / i)
for divisor in reversed(large_divisors):
yield divisor
def sumdivisorGenerator(n):
print sum (list(divisorGenerator(n)))
The recursive procedure x_(k+1)=p(x_k)-x_k has to end, if 0 is reached or put an error if a number gets hit twice and put out the length of the recurive procedure if its succesfully. I just have the problem that i dont know how to do this.".
After i tried to define x_(k+1)=p(x_k)-x_k(catalansequence(n)) iam already gettting an error when i try to use numbers because "print(sumdivisorGenerator(n)-n)" (TypeError: unsupported operand parent(s) for -: '<type 'NoneType'>' and 'Integer Ring')
def catalansequence(n):
print(sumdivisorGenerator(n)-n)
I would be really grateful if someone could help me with my homwork.(sorry for my bad english)
def divisorGenerator(n):
large_divisors = []
for i in xrange(1, int(math.sqrt(n) + 1)):
if n % i == 0:
yield i
if i*i != n:
large_divisors.append(n / i)
for divisor in reversed(large_divisors):
yield divisor
def sumdivisorGenerator(n):
print sum (list(divisorGenerator(n)))
The recursive procedure x_(k+1)=p(x_k)-x_k has to end, if 0 is reached or put an error if a number gets hit twice and put out the length of the recurive procedure if its succesfully. I just have the problem that i dont know how to do this.".
After i tried to define x_(k+1)=p(x_k)-x_k(catalansequence(n)) iam already gettting an error when i try to use numbers because "print(sumdivisorGenerator(n)-n)" (TypeError: unsupported operand parent(s) for -: '<type 'NoneType'>' and 'Integer Ring')
def catalansequence(n):
print(sumdivisorGenerator(n)-n)
I would be really grateful if someone could help me with my homwork.(sorry for my bad english)