I got no response to my post that began this thread 8 days ago. I followed that with a new thread, "List comprehension question" that continued for 60+ posts, and from which I learned a lot -- about optimizing a function (and the importance of timing the various candidates for improvement). The function has been radically changed and speeded up more than 10x. I didn't mention what it was for, but now here it is in my script to find Amicable Pairs (ta daa!). See <http://tutoree7.pastebin.com/wKvMAWpT>. I've used it to find the first 195 pairs, or all pairs (n, m), n < m where 1 <= n <= 55,000,000. The list is at <http://tutoree7.pastebin.com/gyMar6H2>.
Now, I have no reason at all to care about Amicable Pairs, but I'm interested in learning how to make the search for them more efficient. When I had found all pairs up through n = 34,000,000, I thought I'd found one way that would find APs faster (by one-third) by eliminating all odd n's that didn't end in '5' (40% of all n's). In fact, up to n = 34 million, there are no APs whose n is both odd and whose last digit is not '5'. So I asked on <http://math.stackexchange.com/> if it is true for all APs: <http://tinyurl.com/37ug3x2>. As you can see, I should have gone another million out, because that's where the counterexample (34765731, 36939357) appears. And it remains the only counterexample up through n = 55 million. So, Tutors, what can I do to make the search for APs more efficient? C Smith has pointed out that if I installed sympy, I could do >>> from sympy import divisors >>> list(divisors(256)) [1, 2, 4, 8, 16, 32, 64, 128, 256] and the sum of the proper divisors of 256 would be just sum(divisors(n)) - n. However, when I did install sympy, and tried Smith's idea, the result was a major slowdown on my system, for some unknown reason. But that's fine, because I wouldn't learn much from sympy anyway, other than that it performs magic. I think what I want are ways to eliminate (filter out?) some of the n's (as in my idea of the odd n's that don't end in '5'). Anyone? Dick Moores _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor