diff options
author | Puneeth Chaganti | 2009-10-12 12:09:16 +0530 |
---|---|---|
committer | Puneeth Chaganti | 2009-10-12 12:09:16 +0530 |
commit | c943ce2f94141e0449e8e94de486f281453eb5bf (patch) | |
tree | b7cd7aadd32cc058435c9b93e5daa453dd62da92 /day1/exercise/amicable.py | |
parent | 163eb47568e337cfaf6260f3e9e97badf2467609 (diff) | |
parent | 90327591260622d4569b2dfa860d019109301288 (diff) | |
download | workshops-more-scipy-c943ce2f94141e0449e8e94de486f281453eb5bf.tar.gz workshops-more-scipy-c943ce2f94141e0449e8e94de486f281453eb5bf.tar.bz2 workshops-more-scipy-c943ce2f94141e0449e8e94de486f281453eb5bf.zip |
Merged with mainline.
Diffstat (limited to 'day1/exercise/amicable.py')
-rw-r--r-- | day1/exercise/amicable.py | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/day1/exercise/amicable.py b/day1/exercise/amicable.py index 0986e33..c9aea71 100644 --- a/day1/exercise/amicable.py +++ b/day1/exercise/amicable.py @@ -1,18 +1,25 @@ -import math +def is_perfect_square(n): + i = 1 + while i * i < n: + i += 1 + return i * i == n, i def aliquot(n): - sum = 0 - for i in range(1, int(math.sqrt(n))+1): + sum = 1 + i = 2 + + is_ps, root = is_perfect_square(n) + while i < root: if n % i == 0: - sum += i + n/i + sum += i + (n / i) + i += 1 return sum amicable = [] -for n in range(10000, 100000): - m = aliquot(n) - if aliquot(m) == n: - amicable.append((m, n)) -print amicable - -# please please please profile this. +n = 1000 +while n < 10000: + m = aliquot(n) + if m > n and aliquot(m) == n: + print m, n + n += 1 |