Sha256: 94cb07102955e331d9fc16314c1741d81809bbe0072e7a1efbd62a98fc596276
Contents?: true
Size: 661 Bytes
Versions: 113
Compression:
Stored size: 661 Bytes
Contents
def divisor_generator(n): ''' Returns an unordered list of divisors for n (1 < n). ''' for i in range(2, int(n ** 0.5) + 1): if n % i == 0: yield i if i * i != n: yield n // i def classify(n): ''' A perfect number equals the sum of its positive divisors. ''' if n <= 0: raise ValueError("Classification is only possible" + " for positive whole numbers.") aliquot_sum = sum(divisor_generator(n)) + (1 if n > 1 else 0) if aliquot_sum < n: return "deficient" elif aliquot_sum == n: return "perfect" else: return "abundant"
Version data entries
113 entries across 113 versions & 1 rubygems