Hi, I am trying to find the smallest positive number that is divisible by all of the numbers from 1 to 20 without a remainder. I wrote the following code (implementation of a solution method found in http://en.wikipedia.org/wiki/Least_common_multiple#A_method_using_a_table ) but kept getting an error message (also posted) when I ran it. I can't figure out the problem. I would appreciate help with this. Also, any hint on how to make the code more elegant is welcome.
Regards, Abasiemeka *CODE* def checkdiv(x, testlist): #returns True if x can divide ANY member of testlist,returns False otherwise for k in testlist: if k%x == 0: return True return False def lcm(numlist): #continuously divides numlist by each in a list of prime numbers till cannot primeslist = [2, 3, 5, 7, 11] templist = [] for prime in primeslist: if checkdiv(prime, numlist) == True: templist = templist.append(prime) for i in range(0,len(numlist)): if numlist[i]%prime == 0: numlist[i] = numlist[i]/prime else: pass lcm = reduce(lambda x, y: x*y, templist) #my first lambda expression! (multiply all members of templist return lcm print lcm([i for i in range(1, 21)]) *ERROR OUTPUT* Traceback (most recent call last): File "C:\Windows.old\Users\Abasiemeka\Abasiemeka\GOOGLE University\Python\Python Code\MyCode\Project Euler code\Project Euler answer 5.py", line 31, in <module> print lcm(first20) File "C:\Windows.old\Users\Abasiemeka\Abasiemeka\GOOGLE University\Python\Python Code\MyCode\Project Euler code\Project Euler answer 5.py", line 20, in lcm templist = templist.append(prime) AttributeError: 'NoneType' object has no attribute 'append'
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor