def solve(self): result = 0 for value in xrange(1, self.num): anotherValue = sum(get_proper_divisors(value)) if value == anotherValue: continue if value == sum(get_proper_divisors(anotherValue)): result += value return result
def get_abundant_numbers(): abundants = [] for n in range(1, MAX + 1): if n % 1000 == 0: print(n, end='\r') sum_ = sum(utils.get_proper_divisors(n)) if sum_ > n: abundants.append(n) return abundants
def num_periods(n): if n % 2 == 0: n = int(n / 2) if n % 5 == 0: n = int(n / 5) divs = utils.get_proper_divisors(phi(n), True) for divsr in divs: if 10**divsr % n == 1: return divsr return 0
def solve(self): abundants = [] for value in xrange(1, self.max + 1): if sum(get_proper_divisors(value)) > value: abundants.append(value) non_abundants = set() for index, itemLeft in enumerate(abundants): if itemLeft >= self.max / 2: break for itemRight in abundants[index:]: value = itemLeft + itemRight if value > self.max: break else: non_abundants.add(value) all_sum = int(self.max * (self.max + 1) / 2) return all_sum - sum(non_abundants)
def d(n): return sum(utils.get_proper_divisors(n))
def is_abundant(number): return sum(get_proper_divisors(number)) > number