In this code snippet, we’ll show an example of a Python language function to generate n number of perfect_numbers (equal to the sum of its non-negative divisors but not itself).
Python language function to generate n number of perfect_numbers (equal to the sum of its non-negative divisors but not itself).
def is_perfect_number(number: int) -> bool:
"""
Checks if a given number is a perfect number.
Args:
number (int): The number to check.
Returns:
bool: True if the number is a perfect number, False otherwise.
"""
list_of_divisors = []
for i in range(1, number):
if number % i == 0:
list_of_divisors.append(i)
return sum(list_of_divisors) == number
def generate_n_perfect_numbers(limit: int) -> list:
"""
Generate a list of n perfect numbers up to a given limit.
Parameters:
limit (int): The upper limit to generate perfect numbers up to.
Returns:
list: A list of n perfect numbers.
"""
perfect_numbers = []
start = 1
while limit > 0:
if (is_perfect_number(start)):
perfect_numbers.append(start)
limit -= 1
start += 1
return perfect_numbers
def main():
print(generate_n_perfect_numbers(4))
if __name__ == "__main__":
main()
All code from this code snippet package can be downloaded here.
MIT Licensed Code – See License
Tags: python, maths, mathematics, divisors, perfect numbers







