(You top-posted, so I'm deleting all the out-of-order stuff. in these forums, you should put your response after whatever you quote.)

On 12/01/2011 02:55 PM, Michael Hall wrote:
The OP has been taught but is still having an issue and all I am doing is
asking for help. Here is what I have so far

# 1) a perfect number is a positive integer that is equal to the
# sum of its proper positive divisors,excluding the number itself.
# for example, 6 is a perfect number because it is evenly divisible
# by 1, 2 and 3 - all of it's divisors - and the sum 1 + 2 + 3 = 6.
# a) write a function, getDivisors(), that returns a list of all
# of the positive divisors of a given number. for example -
# result = getDivisors(24)
# print(result)
# would yield: "[ 1, 2, 3, 4, 6, 8, 12]"

def main():
     x = 1

     num = int(input('Please Enter a Number: '))
     getDivisors(num)

You'll want to store the return value of getDivisors, since you have more work to do there.


def getDivisors(num):
     sum = 0
     x = 1
     #my_list[] = num

That's close.  To create an empty list, simply do
        my_list = []

     for num in range(1, num, 1):

         if num % x == 0:
             print(num)
             sum += num
Why are you summing it? That was in another function. In this one, you're trying to build a list. Any ideas how to do that at this point in the function?

     print('The sum is ', sum)
     if sum == num:
         print(num, 'is a perfect number')
     else:
         print(num, 'is not a perfect number')
None of these lines belong in your function. All it's supposed to do is get the divisors, not to study them in any way.


main()



--

DaveA
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to