Пример #1
0
'''
Created on Jan 19, 2013

@author: PaymahnMoghadasian
'''
import CommonFunctions as cf

sum_of_divisors = {}
amicable_numbers = []
UPPER_BOUND = 10000

print cf.find_divisors(1)

for i in range(2, UPPER_BOUND):
    divisors = cf.find_divisors(i)
    divisors.remove(i)
    sum_of_divisors[i] = sum(divisors)

for i in sum_of_divisors:
    # print "Checking %d with sum %d" % (i, sum_of_divisors[i])
    if sum_of_divisors[i] != 1 and sum_of_divisors[i] < UPPER_BOUND and  i == sum_of_divisors[sum_of_divisors[i]] and i != sum_of_divisors[i]:
        if i not in amicable_numbers:
            amicable_numbers.append(i)
        
        if sum_of_divisors[i] not in amicable_numbers:
            amicable_numbers.append(sum_of_divisors[i])
        
print sum(amicable_numbers)
print amicable_numbers
print sum_of_divisors[6]
print sum_of_divisors[28]
Пример #2
0
'''
Created on Jan 19, 2013

@author: PaymahnMoghadasian
'''
import CommonFunctions as cf

UPPER_BOUND = 28123  # inclusive

abundant_numbers = []

for i in range(2, UPPER_BOUND + 1):
    divisors = cf.find_divisors(i)
    divisors.remove(i)
    sum_of_divisors = sum(divisors)
    
    if sum_of_divisors > i:
        abundant_numbers.append(i)
        
tally = 0
abundant_numbers.sort()
print len(abundant_numbers)

for i in range(1, UPPER_BOUND + 1):
    if i % 1000 == 0: 
        print "At %d with tally %d" % (i, tally)
    for j in abundant_numbers:
        if j > i / 2:
            tally += i
            break
        
Пример #3
0
"""
Created on Jan 19, 2013

@author: PaymahnMoghadasian
"""
import CommonFunctions as cf

abundants = set(i for i in range(1, 28124) if sum(cf.find_divisors(i)) > i + i)


def abundantsum(i):
    return any(i - a in abundants for a in abundants)


print sum(i for i in range(1, 28124) if not abundantsum(i))