Пример #1
0
def main():
    numbers = list()  # amicable numbers
    for i in xrange(1, 10001):
        sum_prodiv = sum_proper_divisors(i)  # sum of proper divisors
        if sum_proper_divisors(sum_prodiv) == i and sum_prodiv != i:
            numbers.append(i)

    print sum(numbers)
Пример #2
0
def calc_period_old(num):
    """Return the period of amicable chain
    >>>calc_period(5)
    >>>0
    Todo: deficient number, abundant number"""
    if isprime(num):
        return 0
    chain = list()
    chain.append(num)
    while True:
        sum_prodiv = sum_proper_divisors(num) # sum of proper divisors
        if sum_prodiv not in chain:
            chain.append(sum_prodiv)
            num = sum_prodiv
        else:
            break
    return len(chain)
Пример #3
0
def create_sociable_numbers(num):
    """There are some bags in this function.
    >>>create_sociable_numbers(5)
    >>>[]"""
    if isprime(num):
        return list()
    chain = list()
    chain.append(num)
    while True:
        if isprime(num):
            return list()
        sum_prodiv = sum_proper_divisors(num) # sum of proper divisors
        if sum_prodiv not in chain:
            chain.append(sum_prodiv)
            #num = sum_prodiv
        else:
            break
        num = sum_prodiv
        if is_perfect(num):
            return list()
    return chain